@en-solutions/tgm-client-sdk 1.6.21
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/LICENSE +19 -0
- package/README.md +788 -0
- package/esm2022/en-solutions-tgm-client-sdk.mjs +5 -0
- package/esm2022/lib/components/database-manager/database-manager/database-manager.component.mjs +308 -0
- package/esm2022/lib/components/database-manager/database-manager.module.mjs +66 -0
- package/esm2022/lib/components/database-manager/object-browser/object-browser.component.mjs +98 -0
- package/esm2022/lib/components/database-manager/query-editor/query-editor.component.mjs +196 -0
- package/esm2022/lib/components/database-manager/query-toolbar/query-toolbar.component.mjs +70 -0
- package/esm2022/lib/components/database-manager/record-detail/record-detail.component.mjs +112 -0
- package/esm2022/lib/components/database-manager/registry/entity-registry.mjs +512 -0
- package/esm2022/lib/components/database-manager/results-grid/results-grid.component.mjs +165 -0
- package/esm2022/lib/components/database-manager/services/entity-schema.service.mjs +91 -0
- package/esm2022/lib/components/database-manager/services/query-executor.service.mjs +204 -0
- package/esm2022/lib/components/database-manager/table-data-viewer/table-data-viewer.component.mjs +166 -0
- package/esm2022/lib/components/database-manager/table-structure/table-structure.component.mjs +42 -0
- package/esm2022/lib/components/database-manager/types/database-manager.types.mjs +6 -0
- package/esm2022/lib/components/reporting/export-button/export-button.component.mjs +203 -0
- package/esm2022/lib/components/reporting/generated-report-list/generated-report-list.component.mjs +285 -0
- package/esm2022/lib/components/reporting/report-definition-form/report-definition-form.component.mjs +206 -0
- package/esm2022/lib/components/reporting/report-definition-list/report-definition-list.component.mjs +252 -0
- package/esm2022/lib/components/reporting/report-generate-dialog/report-generate-dialog.component.mjs +122 -0
- package/esm2022/lib/components/reporting/report-stats/report-stats.component.mjs +164 -0
- package/esm2022/lib/components/reporting/report-template-list/report-template-list.component.mjs +114 -0
- package/esm2022/lib/components/reporting/reporting.module.mjs +60 -0
- package/esm2022/lib/components/video-call/incoming-call/incoming-call.component.mjs +80 -0
- package/esm2022/lib/components/video-call/services/livekit-room.service.mjs +142 -0
- package/esm2022/lib/components/video-call/services/video-call-signaling.service.mjs +42 -0
- package/esm2022/lib/components/video-call/services/video-call-state.service.mjs +52 -0
- package/esm2022/lib/components/video-call/types/video-call.types.mjs +2 -0
- package/esm2022/lib/components/video-call/video-call.module.mjs +42 -0
- package/esm2022/lib/components/video-call/video-controls/video-controls.component.mjs +33 -0
- package/esm2022/lib/components/video-call/video-participant/video-participant.component.mjs +68 -0
- package/esm2022/lib/components/video-call/video-room/video-room.component.mjs +89 -0
- package/esm2022/lib/core/auth-interceptor.mjs +33 -0
- package/esm2022/lib/core/client-interceptor.mjs +34 -0
- package/esm2022/lib/core/error-handler.mjs +32 -0
- package/esm2022/lib/core/http-client.service.mjs +254 -0
- package/esm2022/lib/core/websocket.service.mjs +185 -0
- package/esm2022/lib/models/admin/audit.models.mjs +2 -0
- package/esm2022/lib/models/admin/backup.models.mjs +2 -0
- package/esm2022/lib/models/admin/client.models.mjs +2 -0
- package/esm2022/lib/models/admin/email-provider.models.mjs +2 -0
- package/esm2022/lib/models/admin/erp.models.mjs +2 -0
- package/esm2022/lib/models/admin/identity-provider.models.mjs +2 -0
- package/esm2022/lib/models/admin/index.mjs +14 -0
- package/esm2022/lib/models/admin/messaging-provider.models.mjs +2 -0
- package/esm2022/lib/models/admin/platform-admin.models.mjs +2 -0
- package/esm2022/lib/models/admin/queue.models.mjs +2 -0
- package/esm2022/lib/models/admin/role.models.mjs +2 -0
- package/esm2022/lib/models/admin/sandbox.models.mjs +2 -0
- package/esm2022/lib/models/admin/ticket.models.mjs +2 -0
- package/esm2022/lib/models/admin/webhook.models.mjs +2 -0
- package/esm2022/lib/models/api/ai.models.mjs +2 -0
- package/esm2022/lib/models/api/aip.models.mjs +2 -0
- package/esm2022/lib/models/api/cat.models.mjs +2 -0
- package/esm2022/lib/models/api/company.models.mjs +2 -0
- package/esm2022/lib/models/api/compliance.models.mjs +2 -0
- package/esm2022/lib/models/api/component.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-edge.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-event.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-insight.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-node.models.mjs +2 -0
- package/esm2022/lib/models/api/custom-field.models.mjs +2 -0
- package/esm2022/lib/models/api/deferral.models.mjs +2 -0
- package/esm2022/lib/models/api/diagnostic-report.models.mjs +2 -0
- package/esm2022/lib/models/api/document.models.mjs +2 -0
- package/esm2022/lib/models/api/energy.models.mjs +2 -0
- package/esm2022/lib/models/api/failure.models.mjs +2 -0
- package/esm2022/lib/models/api/fleet.models.mjs +2 -0
- package/esm2022/lib/models/api/inspection.models.mjs +2 -0
- package/esm2022/lib/models/api/intervention.models.mjs +2 -0
- package/esm2022/lib/models/api/iot.models.mjs +2 -0
- package/esm2022/lib/models/api/knowledge.models.mjs +2 -0
- package/esm2022/lib/models/api/loto.models.mjs +2 -0
- package/esm2022/lib/models/api/maintenance-record.models.mjs +2 -0
- package/esm2022/lib/models/api/maintenance.models.mjs +2 -0
- package/esm2022/lib/models/api/material.models.mjs +2 -0
- package/esm2022/lib/models/api/media.models.mjs +2 -0
- package/esm2022/lib/models/api/misc.models.mjs +2 -0
- package/esm2022/lib/models/api/project.models.mjs +2 -0
- package/esm2022/lib/models/api/quality.models.mjs +2 -0
- package/esm2022/lib/models/api/reporting.models.mjs +3 -0
- package/esm2022/lib/models/api/reservoir-websocket.models.mjs +17 -0
- package/esm2022/lib/models/api/reservoir.models.mjs +2 -0
- package/esm2022/lib/models/api/search.models.mjs +2 -0
- package/esm2022/lib/models/api/sensor.models.mjs +2 -0
- package/esm2022/lib/models/api/unit.models.mjs +2 -0
- package/esm2022/lib/models/api/user.models.mjs +2 -0
- package/esm2022/lib/models/api/warranty.models.mjs +2 -0
- package/esm2022/lib/models/api/work-permit.models.mjs +2 -0
- package/esm2022/lib/models/api/workflow.models.mjs +2 -0
- package/esm2022/lib/models/auth/index.mjs +4 -0
- package/esm2022/lib/models/auth/login.models.mjs +2 -0
- package/esm2022/lib/models/auth/sso.models.mjs +2 -0
- package/esm2022/lib/models/auth/totp.models.mjs +2 -0
- package/esm2022/lib/models/base.models.mjs +99 -0
- package/esm2022/lib/models/chat/chat.models.mjs +2 -0
- package/esm2022/lib/models/enums/cat.enums.mjs +17 -0
- package/esm2022/lib/models/enums/energy.enums.mjs +8 -0
- package/esm2022/lib/models/enums/erp.enums.mjs +5 -0
- package/esm2022/lib/models/enums/index.mjs +15 -0
- package/esm2022/lib/models/enums/inspection.enums.mjs +7 -0
- package/esm2022/lib/models/enums/loto.enums.mjs +25 -0
- package/esm2022/lib/models/enums/misc.enums.mjs +19 -0
- package/esm2022/lib/models/enums/quality.enums.mjs +22 -0
- package/esm2022/lib/models/enums/reservoir.enums.mjs +13 -0
- package/esm2022/lib/models/enums/sso.enums.mjs +3 -0
- package/esm2022/lib/models/enums/status.enums.mjs +41 -0
- package/esm2022/lib/models/enums/time.enums.mjs +5 -0
- package/esm2022/lib/models/enums/type.enums.mjs +45 -0
- package/esm2022/lib/models/enums/user.enums.mjs +6 -0
- package/esm2022/lib/models/enums/work-permit.enums.mjs +33 -0
- package/esm2022/lib/models/index.mjs +42 -0
- package/esm2022/lib/models/realtime/realtime-event.models.mjs +9 -0
- package/esm2022/lib/models/video/video-call.models.mjs +2 -0
- package/esm2022/lib/services/admin/activity-log.service.mjs +28 -0
- package/esm2022/lib/services/admin/announcement.service.mjs +37 -0
- package/esm2022/lib/services/admin/article-admin.service.mjs +37 -0
- package/esm2022/lib/services/admin/audit-log.service.mjs +53 -0
- package/esm2022/lib/services/admin/backup.service.mjs +28 -0
- package/esm2022/lib/services/admin/cache-admin.service.mjs +64 -0
- package/esm2022/lib/services/admin/client-admin.service.mjs +101 -0
- package/esm2022/lib/services/admin/client-api-key.service.mjs +31 -0
- package/esm2022/lib/services/admin/client-ocr.service.mjs +28 -0
- package/esm2022/lib/services/admin/client-usage.service.mjs +31 -0
- package/esm2022/lib/services/admin/data-export.service.mjs +19 -0
- package/esm2022/lib/services/admin/document-admin.service.mjs +40 -0
- package/esm2022/lib/services/admin/email-admin.service.mjs +28 -0
- package/esm2022/lib/services/admin/email-provider.service.mjs +58 -0
- package/esm2022/lib/services/admin/erp-admin.service.mjs +111 -0
- package/esm2022/lib/services/admin/identity-provider.service.mjs +46 -0
- package/esm2022/lib/services/admin/impersonation.service.mjs +19 -0
- package/esm2022/lib/services/admin/index.mjs +31 -0
- package/esm2022/lib/services/admin/messaging-provider.service.mjs +55 -0
- package/esm2022/lib/services/admin/notification.service.mjs +31 -0
- package/esm2022/lib/services/admin/platform-admin.service.mjs +34 -0
- package/esm2022/lib/services/admin/platform-webhook.service.mjs +34 -0
- package/esm2022/lib/services/admin/queue-admin.service.mjs +55 -0
- package/esm2022/lib/services/admin/role-admin.service.mjs +81 -0
- package/esm2022/lib/services/admin/sandbox-admin.service.mjs +34 -0
- package/esm2022/lib/services/admin/scheduler-admin.service.mjs +34 -0
- package/esm2022/lib/services/admin/subscription.service.mjs +28 -0
- package/esm2022/lib/services/admin/system-health.service.mjs +22 -0
- package/esm2022/lib/services/admin/user-admin.service.mjs +67 -0
- package/esm2022/lib/services/admin/user-permission.service.mjs +40 -0
- package/esm2022/lib/services/admin/webhook-admin.service.mjs +61 -0
- package/esm2022/lib/services/api/agent.service.mjs +29 -0
- package/esm2022/lib/services/api/ai-feedback.service.mjs +17 -0
- package/esm2022/lib/services/api/ai.service.mjs +66 -0
- package/esm2022/lib/services/api/aip-analysis.service.mjs +20 -0
- package/esm2022/lib/services/api/aip-financial.service.mjs +29 -0
- package/esm2022/lib/services/api/aip-geographic.service.mjs +30 -0
- package/esm2022/lib/services/api/aip-network.service.mjs +29 -0
- package/esm2022/lib/services/api/aip-performance.service.mjs +29 -0
- package/esm2022/lib/services/api/aip-resource.service.mjs +23 -0
- package/esm2022/lib/services/api/aip-workflow.service.mjs +32 -0
- package/esm2022/lib/services/api/aip.service.mjs +158 -0
- package/esm2022/lib/services/api/alert.service.mjs +26 -0
- package/esm2022/lib/services/api/anomaly-detection.service.mjs +40 -0
- package/esm2022/lib/services/api/asset-lifecycle.service.mjs +78 -0
- package/esm2022/lib/services/api/audit-entry.service.mjs +22 -0
- package/esm2022/lib/services/api/base-crud.service.mjs +37 -0
- package/esm2022/lib/services/api/bid.service.mjs +17 -0
- package/esm2022/lib/services/api/budget.service.mjs +17 -0
- package/esm2022/lib/services/api/bulk-operation.service.mjs +65 -0
- package/esm2022/lib/services/api/capex-project.service.mjs +17 -0
- package/esm2022/lib/services/api/cat.service.mjs +77 -0
- package/esm2022/lib/services/api/client-article.service.mjs +23 -0
- package/esm2022/lib/services/api/community.service.mjs +41 -0
- package/esm2022/lib/services/api/company-material-type.service.mjs +17 -0
- package/esm2022/lib/services/api/company-material.service.mjs +17 -0
- package/esm2022/lib/services/api/company.service.mjs +30 -0
- package/esm2022/lib/services/api/compliance.service.mjs +74 -0
- package/esm2022/lib/services/api/component-info.service.mjs +17 -0
- package/esm2022/lib/services/api/component-location.service.mjs +17 -0
- package/esm2022/lib/services/api/component.service.mjs +53 -0
- package/esm2022/lib/services/api/cortex-event.service.mjs +17 -0
- package/esm2022/lib/services/api/cortex-insight.service.mjs +23 -0
- package/esm2022/lib/services/api/cortex-node.service.mjs +17 -0
- package/esm2022/lib/services/api/cortex.service.mjs +29 -0
- package/esm2022/lib/services/api/custom-field.service.mjs +70 -0
- package/esm2022/lib/services/api/custom.service.mjs +43 -0
- package/esm2022/lib/services/api/dashboard.service.mjs +44 -0
- package/esm2022/lib/services/api/deferral.service.mjs +54 -0
- package/esm2022/lib/services/api/department.service.mjs +17 -0
- package/esm2022/lib/services/api/device-gateway.service.mjs +33 -0
- package/esm2022/lib/services/api/diagnostic-report.service.mjs +23 -0
- package/esm2022/lib/services/api/digital-twin.service.mjs +56 -0
- package/esm2022/lib/services/api/document.service.mjs +53 -0
- package/esm2022/lib/services/api/dynamic-crud.service.mjs +67 -0
- package/esm2022/lib/services/api/energy-analytics.service.mjs +42 -0
- package/esm2022/lib/services/api/energy-production.service.mjs +17 -0
- package/esm2022/lib/services/api/energy.service.mjs +91 -0
- package/esm2022/lib/services/api/entity-comment.service.mjs +31 -0
- package/esm2022/lib/services/api/event.service.mjs +17 -0
- package/esm2022/lib/services/api/export.service.mjs +216 -0
- package/esm2022/lib/services/api/extension.service.mjs +56 -0
- package/esm2022/lib/services/api/failure.service.mjs +53 -0
- package/esm2022/lib/services/api/fleet.service.mjs +140 -0
- package/esm2022/lib/services/api/inactive-component.service.mjs +17 -0
- package/esm2022/lib/services/api/index.mjs +101 -0
- package/esm2022/lib/services/api/inspection.service.mjs +29 -0
- package/esm2022/lib/services/api/intervention-request.service.mjs +17 -0
- package/esm2022/lib/services/api/intervention.service.mjs +17 -0
- package/esm2022/lib/services/api/knowledge.service.mjs +209 -0
- package/esm2022/lib/services/api/license.service.mjs +25 -0
- package/esm2022/lib/services/api/location.service.mjs +17 -0
- package/esm2022/lib/services/api/log.service.mjs +17 -0
- package/esm2022/lib/services/api/login-history.service.mjs +17 -0
- package/esm2022/lib/services/api/maintenance-plan.service.mjs +17 -0
- package/esm2022/lib/services/api/maintenance-record.service.mjs +17 -0
- package/esm2022/lib/services/api/material-consumable.service.mjs +41 -0
- package/esm2022/lib/services/api/material-instrument.service.mjs +29 -0
- package/esm2022/lib/services/api/material-item.service.mjs +53 -0
- package/esm2022/lib/services/api/material-tooling.service.mjs +41 -0
- package/esm2022/lib/services/api/measurement-unit.service.mjs +17 -0
- package/esm2022/lib/services/api/misc-crud.service.mjs +329 -0
- package/esm2022/lib/services/api/note.service.mjs +37 -0
- package/esm2022/lib/services/api/outage-resource.service.mjs +28 -0
- package/esm2022/lib/services/api/plant-data.service.mjs +31 -0
- package/esm2022/lib/services/api/procurement.service.mjs +53 -0
- package/esm2022/lib/services/api/project.service.mjs +17 -0
- package/esm2022/lib/services/api/property-template.service.mjs +17 -0
- package/esm2022/lib/services/api/quality.service.mjs +29 -0
- package/esm2022/lib/services/api/recurring-event.service.mjs +17 -0
- package/esm2022/lib/services/api/reporting.service.mjs +117 -0
- package/esm2022/lib/services/api/reservoir-data.service.mjs +19 -0
- package/esm2022/lib/services/api/reservoir.service.mjs +209 -0
- package/esm2022/lib/services/api/room.service.mjs +17 -0
- package/esm2022/lib/services/api/sandbox.service.mjs +62 -0
- package/esm2022/lib/services/api/scheduled-report.service.mjs +17 -0
- package/esm2022/lib/services/api/search.service.mjs +77 -0
- package/esm2022/lib/services/api/sensor.service.mjs +36 -0
- package/esm2022/lib/services/api/sla-policy.service.mjs +17 -0
- package/esm2022/lib/services/api/sla.service.mjs +17 -0
- package/esm2022/lib/services/api/threshold-alert-rule.service.mjs +17 -0
- package/esm2022/lib/services/api/ticket.service.mjs +73 -0
- package/esm2022/lib/services/api/time-entry.service.mjs +17 -0
- package/esm2022/lib/services/api/todo.service.mjs +17 -0
- package/esm2022/lib/services/api/unit.service.mjs +17 -0
- package/esm2022/lib/services/api/upload.service.mjs +84 -0
- package/esm2022/lib/services/api/user.service.mjs +107 -0
- package/esm2022/lib/services/api/warehouse.service.mjs +29 -0
- package/esm2022/lib/services/api/warranty.service.mjs +29 -0
- package/esm2022/lib/services/api/work-order.service.mjs +28 -0
- package/esm2022/lib/services/api/work-permit.service.mjs +17 -0
- package/esm2022/lib/services/api/workflow.service.mjs +86 -0
- package/esm2022/lib/services/auth/auth.service.mjs +97 -0
- package/esm2022/lib/services/auth/index.mjs +5 -0
- package/esm2022/lib/services/auth/platform-auth.service.mjs +39 -0
- package/esm2022/lib/services/auth/sso-auth.service.mjs +46 -0
- package/esm2022/lib/services/auth/totp.service.mjs +34 -0
- package/esm2022/lib/services/chat/chat-rest.service.mjs +104 -0
- package/esm2022/lib/services/chat/chat-websocket.service.mjs +70 -0
- package/esm2022/lib/services/chat/index.mjs +3 -0
- package/esm2022/lib/services/index.mjs +8 -0
- package/esm2022/lib/services/realtime/index.mjs +2 -0
- package/esm2022/lib/services/realtime/realtime-event.service.mjs +187 -0
- package/esm2022/lib/services/reservoir/index.mjs +2 -0
- package/esm2022/lib/services/reservoir/reservoir-websocket.service.mjs +105 -0
- package/esm2022/lib/services/video/index.mjs +3 -0
- package/esm2022/lib/services/video/video-call-rest.service.mjs +42 -0
- package/esm2022/lib/services/video/video-call-websocket.service.mjs +55 -0
- package/esm2022/lib/tgm-sdk.config.mjs +32 -0
- package/esm2022/lib/tgm-sdk.module.mjs +38 -0
- package/esm2022/public-api.mjs +52 -0
- package/fesm2022/en-solutions-tgm-client-sdk.mjs +11029 -0
- package/fesm2022/en-solutions-tgm-client-sdk.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/database-manager/database-manager/database-manager.component.d.ts +70 -0
- package/lib/components/database-manager/database-manager.module.d.ts +15 -0
- package/lib/components/database-manager/object-browser/object-browser.component.d.ts +35 -0
- package/lib/components/database-manager/query-editor/query-editor.component.d.ts +31 -0
- package/lib/components/database-manager/query-toolbar/query-toolbar.component.d.ts +23 -0
- package/lib/components/database-manager/record-detail/record-detail.component.d.ts +35 -0
- package/lib/components/database-manager/registry/entity-registry.d.ts +16 -0
- package/lib/components/database-manager/results-grid/results-grid.component.d.ts +62 -0
- package/lib/components/database-manager/services/entity-schema.service.d.ts +37 -0
- package/lib/components/database-manager/services/query-executor.service.d.ts +57 -0
- package/lib/components/database-manager/table-data-viewer/table-data-viewer.component.d.ts +54 -0
- package/lib/components/database-manager/table-structure/table-structure.component.d.ts +16 -0
- package/lib/components/database-manager/types/database-manager.types.d.ts +71 -0
- package/lib/components/reporting/export-button/export-button.component.d.ts +50 -0
- package/lib/components/reporting/generated-report-list/generated-report-list.component.d.ts +93 -0
- package/lib/components/reporting/report-definition-form/report-definition-form.component.d.ts +65 -0
- package/lib/components/reporting/report-definition-list/report-definition-list.component.d.ts +90 -0
- package/lib/components/reporting/report-generate-dialog/report-generate-dialog.component.d.ts +46 -0
- package/lib/components/reporting/report-stats/report-stats.component.d.ts +47 -0
- package/lib/components/reporting/report-template-list/report-template-list.component.d.ts +39 -0
- package/lib/components/reporting/reporting.module.d.ts +14 -0
- package/lib/components/video-call/incoming-call/incoming-call.component.d.ts +20 -0
- package/lib/components/video-call/services/livekit-room.service.d.ts +28 -0
- package/lib/components/video-call/services/video-call-signaling.service.d.ts +21 -0
- package/lib/components/video-call/services/video-call-state.service.d.ts +25 -0
- package/lib/components/video-call/types/video-call.types.d.ts +49 -0
- package/lib/components/video-call/video-call.module.d.ts +11 -0
- package/lib/components/video-call/video-controls/video-controls.component.d.ts +13 -0
- package/lib/components/video-call/video-participant/video-participant.component.d.ts +17 -0
- package/lib/components/video-call/video-room/video-room.component.d.ts +30 -0
- package/lib/core/auth-interceptor.d.ts +13 -0
- package/lib/core/client-interceptor.d.ts +14 -0
- package/lib/core/error-handler.d.ts +13 -0
- package/lib/core/http-client.service.d.ts +61 -0
- package/lib/core/websocket.service.d.ts +37 -0
- package/lib/models/admin/audit.models.d.ts +73 -0
- package/lib/models/admin/backup.models.d.ts +101 -0
- package/lib/models/admin/client.models.d.ts +99 -0
- package/lib/models/admin/email-provider.models.d.ts +56 -0
- package/lib/models/admin/erp.models.d.ts +188 -0
- package/lib/models/admin/identity-provider.models.d.ts +1 -0
- package/lib/models/admin/index.d.ts +13 -0
- package/lib/models/admin/messaging-provider.models.d.ts +49 -0
- package/lib/models/admin/platform-admin.models.d.ts +33 -0
- package/lib/models/admin/queue.models.d.ts +54 -0
- package/lib/models/admin/role.models.d.ts +50 -0
- package/lib/models/admin/sandbox.models.d.ts +54 -0
- package/lib/models/admin/ticket.models.d.ts +48 -0
- package/lib/models/admin/webhook.models.d.ts +65 -0
- package/lib/models/api/ai.models.d.ts +75 -0
- package/lib/models/api/aip.models.d.ts +545 -0
- package/lib/models/api/cat.models.d.ts +260 -0
- package/lib/models/api/company.models.d.ts +125 -0
- package/lib/models/api/compliance.models.d.ts +74 -0
- package/lib/models/api/component.models.d.ts +294 -0
- package/lib/models/api/cortex-edge.models.d.ts +14 -0
- package/lib/models/api/cortex-event.models.d.ts +12 -0
- package/lib/models/api/cortex-insight.models.d.ts +25 -0
- package/lib/models/api/cortex-node.models.d.ts +10 -0
- package/lib/models/api/custom-field.models.d.ts +37 -0
- package/lib/models/api/deferral.models.d.ts +81 -0
- package/lib/models/api/diagnostic-report.models.d.ts +29 -0
- package/lib/models/api/document.models.d.ts +95 -0
- package/lib/models/api/energy.models.d.ts +210 -0
- package/lib/models/api/failure.models.d.ts +171 -0
- package/lib/models/api/fleet.models.d.ts +193 -0
- package/lib/models/api/inspection.models.d.ts +110 -0
- package/lib/models/api/intervention.models.d.ts +254 -0
- package/lib/models/api/iot.models.d.ts +15 -0
- package/lib/models/api/knowledge.models.d.ts +340 -0
- package/lib/models/api/loto.models.d.ts +51 -0
- package/lib/models/api/maintenance-record.models.d.ts +100 -0
- package/lib/models/api/maintenance.models.d.ts +188 -0
- package/lib/models/api/material.models.d.ts +261 -0
- package/lib/models/api/media.models.d.ts +106 -0
- package/lib/models/api/misc.models.d.ts +929 -0
- package/lib/models/api/project.models.d.ts +118 -0
- package/lib/models/api/quality.models.d.ts +153 -0
- package/lib/models/api/reporting.models.d.ts +76 -0
- package/lib/models/api/reservoir-websocket.models.d.ts +48 -0
- package/lib/models/api/reservoir.models.d.ts +274 -0
- package/lib/models/api/search.models.d.ts +30 -0
- package/lib/models/api/sensor.models.d.ts +117 -0
- package/lib/models/api/unit.models.d.ts +82 -0
- package/lib/models/api/user.models.d.ts +253 -0
- package/lib/models/api/warranty.models.d.ts +51 -0
- package/lib/models/api/work-permit.models.d.ts +70 -0
- package/lib/models/api/workflow.models.d.ts +52 -0
- package/lib/models/auth/index.d.ts +3 -0
- package/lib/models/auth/login.models.d.ts +134 -0
- package/lib/models/auth/sso.models.d.ts +136 -0
- package/lib/models/auth/totp.models.d.ts +19 -0
- package/lib/models/base.models.d.ts +90 -0
- package/lib/models/chat/chat.models.d.ts +171 -0
- package/lib/models/enums/cat.enums.d.ts +114 -0
- package/lib/models/enums/energy.enums.d.ts +50 -0
- package/lib/models/enums/erp.enums.d.ts +49 -0
- package/lib/models/enums/index.d.ts +14 -0
- package/lib/models/enums/inspection.enums.d.ts +61 -0
- package/lib/models/enums/loto.enums.d.ts +41 -0
- package/lib/models/enums/misc.enums.d.ts +151 -0
- package/lib/models/enums/quality.enums.d.ts +25 -0
- package/lib/models/enums/reservoir.enums.d.ts +80 -0
- package/lib/models/enums/sso.enums.d.ts +15 -0
- package/lib/models/enums/status.enums.d.ts +296 -0
- package/lib/models/enums/time.enums.d.ts +51 -0
- package/lib/models/enums/type.enums.d.ts +324 -0
- package/lib/models/enums/user.enums.d.ts +31 -0
- package/lib/models/enums/work-permit.enums.d.ts +56 -0
- package/lib/models/index.d.ts +41 -0
- package/lib/models/realtime/realtime-event.models.d.ts +95 -0
- package/lib/models/video/video-call.models.d.ts +65 -0
- package/lib/services/admin/activity-log.service.d.ts +13 -0
- package/lib/services/admin/announcement.service.d.ts +17 -0
- package/lib/services/admin/article-admin.service.d.ts +17 -0
- package/lib/services/admin/audit-log.service.d.ts +22 -0
- package/lib/services/admin/backup.service.d.ts +15 -0
- package/lib/services/admin/cache-admin.service.d.ts +26 -0
- package/lib/services/admin/client-admin.service.d.ts +38 -0
- package/lib/services/admin/client-api-key.service.d.ts +15 -0
- package/lib/services/admin/client-ocr.service.d.ts +14 -0
- package/lib/services/admin/client-usage.service.d.ts +15 -0
- package/lib/services/admin/data-export.service.d.ts +10 -0
- package/lib/services/admin/document-admin.service.d.ts +18 -0
- package/lib/services/admin/email-admin.service.d.ts +14 -0
- package/lib/services/admin/email-provider.service.d.ts +25 -0
- package/lib/services/admin/erp-admin.service.d.ts +41 -0
- package/lib/services/admin/identity-provider.service.d.ts +21 -0
- package/lib/services/admin/impersonation.service.d.ts +11 -0
- package/lib/services/admin/index.d.ts +30 -0
- package/lib/services/admin/messaging-provider.service.d.ts +24 -0
- package/lib/services/admin/notification.service.d.ts +15 -0
- package/lib/services/admin/platform-admin.service.d.ts +17 -0
- package/lib/services/admin/platform-webhook.service.d.ts +16 -0
- package/lib/services/admin/queue-admin.service.d.ts +24 -0
- package/lib/services/admin/role-admin.service.d.ts +37 -0
- package/lib/services/admin/sandbox-admin.service.d.ts +17 -0
- package/lib/services/admin/scheduler-admin.service.d.ts +61 -0
- package/lib/services/admin/subscription.service.d.ts +15 -0
- package/lib/services/admin/system-health.service.d.ts +11 -0
- package/lib/services/admin/user-admin.service.d.ts +27 -0
- package/lib/services/admin/user-permission.service.d.ts +18 -0
- package/lib/services/admin/webhook-admin.service.d.ts +26 -0
- package/lib/services/api/agent.service.d.ts +16 -0
- package/lib/services/api/ai-feedback.service.d.ts +9 -0
- package/lib/services/api/ai.service.d.ts +36 -0
- package/lib/services/api/aip-analysis.service.d.ts +13 -0
- package/lib/services/api/aip-financial.service.d.ts +16 -0
- package/lib/services/api/aip-geographic.service.d.ts +16 -0
- package/lib/services/api/aip-network.service.d.ts +16 -0
- package/lib/services/api/aip-performance.service.d.ts +16 -0
- package/lib/services/api/aip-resource.service.d.ts +14 -0
- package/lib/services/api/aip-workflow.service.d.ts +24 -0
- package/lib/services/api/aip.service.d.ts +73 -0
- package/lib/services/api/alert.service.d.ts +15 -0
- package/lib/services/api/anomaly-detection.service.d.ts +26 -0
- package/lib/services/api/asset-lifecycle.service.d.ts +29 -0
- package/lib/services/api/audit-entry.service.d.ts +13 -0
- package/lib/services/api/base-crud.service.d.ts +18 -0
- package/lib/services/api/bid.service.d.ts +10 -0
- package/lib/services/api/budget.service.d.ts +10 -0
- package/lib/services/api/bulk-operation.service.d.ts +26 -0
- package/lib/services/api/capex-project.service.d.ts +10 -0
- package/lib/services/api/cat.service.d.ts +40 -0
- package/lib/services/api/client-article.service.d.ts +14 -0
- package/lib/services/api/community.service.d.ts +21 -0
- package/lib/services/api/company-material-type.service.d.ts +10 -0
- package/lib/services/api/company-material.service.d.ts +9 -0
- package/lib/services/api/company.service.d.ts +15 -0
- package/lib/services/api/compliance.service.d.ts +35 -0
- package/lib/services/api/component-info.service.d.ts +10 -0
- package/lib/services/api/component-location.service.d.ts +10 -0
- package/lib/services/api/component.service.d.ts +32 -0
- package/lib/services/api/cortex-event.service.d.ts +10 -0
- package/lib/services/api/cortex-insight.service.d.ts +14 -0
- package/lib/services/api/cortex-node.service.d.ts +10 -0
- package/lib/services/api/cortex.service.d.ts +15 -0
- package/lib/services/api/custom-field.service.d.ts +33 -0
- package/lib/services/api/custom.service.d.ts +23 -0
- package/lib/services/api/dashboard.service.d.ts +18 -0
- package/lib/services/api/deferral.service.d.ts +29 -0
- package/lib/services/api/department.service.d.ts +9 -0
- package/lib/services/api/device-gateway.service.d.ts +16 -0
- package/lib/services/api/diagnostic-report.service.d.ts +14 -0
- package/lib/services/api/digital-twin.service.d.ts +29 -0
- package/lib/services/api/document.service.d.ts +28 -0
- package/lib/services/api/dynamic-crud.service.d.ts +41 -0
- package/lib/services/api/energy-analytics.service.d.ts +16 -0
- package/lib/services/api/energy-production.service.d.ts +10 -0
- package/lib/services/api/energy.service.d.ts +46 -0
- package/lib/services/api/entity-comment.service.d.ts +16 -0
- package/lib/services/api/event.service.d.ts +10 -0
- package/lib/services/api/export.service.d.ts +48 -0
- package/lib/services/api/extension.service.d.ts +24 -0
- package/lib/services/api/failure.service.d.ts +28 -0
- package/lib/services/api/fleet.service.d.ts +71 -0
- package/lib/services/api/inactive-component.service.d.ts +10 -0
- package/lib/services/api/index.d.ts +101 -0
- package/lib/services/api/inspection.service.d.ts +16 -0
- package/lib/services/api/intervention-request.service.d.ts +10 -0
- package/lib/services/api/intervention.service.d.ts +10 -0
- package/lib/services/api/knowledge.service.d.ts +106 -0
- package/lib/services/api/license.service.d.ts +14 -0
- package/lib/services/api/location.service.d.ts +9 -0
- package/lib/services/api/log.service.d.ts +9 -0
- package/lib/services/api/login-history.service.d.ts +10 -0
- package/lib/services/api/maintenance-plan.service.d.ts +10 -0
- package/lib/services/api/maintenance-record.service.d.ts +10 -0
- package/lib/services/api/material-consumable.service.d.ts +22 -0
- package/lib/services/api/material-instrument.service.d.ts +16 -0
- package/lib/services/api/material-item.service.d.ts +28 -0
- package/lib/services/api/material-tooling.service.d.ts +22 -0
- package/lib/services/api/measurement-unit.service.d.ts +10 -0
- package/lib/services/api/misc-crud.service.d.ts +167 -0
- package/lib/services/api/note.service.d.ts +14 -0
- package/lib/services/api/outage-resource.service.d.ts +15 -0
- package/lib/services/api/plant-data.service.d.ts +14 -0
- package/lib/services/api/procurement.service.d.ts +27 -0
- package/lib/services/api/project.service.d.ts +10 -0
- package/lib/services/api/property-template.service.d.ts +10 -0
- package/lib/services/api/quality.service.d.ts +16 -0
- package/lib/services/api/recurring-event.service.d.ts +10 -0
- package/lib/services/api/reporting.service.d.ts +38 -0
- package/lib/services/api/reservoir-data.service.d.ts +10 -0
- package/lib/services/api/reservoir.service.d.ts +109 -0
- package/lib/services/api/room.service.d.ts +10 -0
- package/lib/services/api/sandbox.service.d.ts +26 -0
- package/lib/services/api/scheduled-report.service.d.ts +10 -0
- package/lib/services/api/search.service.d.ts +54 -0
- package/lib/services/api/sensor.service.d.ts +17 -0
- package/lib/services/api/sla-policy.service.d.ts +10 -0
- package/lib/services/api/sla.service.d.ts +10 -0
- package/lib/services/api/threshold-alert-rule.service.d.ts +10 -0
- package/lib/services/api/ticket.service.d.ts +60 -0
- package/lib/services/api/time-entry.service.d.ts +10 -0
- package/lib/services/api/todo.service.d.ts +10 -0
- package/lib/services/api/unit.service.d.ts +10 -0
- package/lib/services/api/upload.service.d.ts +50 -0
- package/lib/services/api/user.service.d.ts +59 -0
- package/lib/services/api/warehouse.service.d.ts +15 -0
- package/lib/services/api/warranty.service.d.ts +16 -0
- package/lib/services/api/work-order.service.d.ts +17 -0
- package/lib/services/api/work-permit.service.d.ts +10 -0
- package/lib/services/api/workflow.service.d.ts +33 -0
- package/lib/services/auth/auth.service.d.ts +33 -0
- package/lib/services/auth/index.d.ts +4 -0
- package/lib/services/auth/platform-auth.service.d.ts +16 -0
- package/lib/services/auth/sso-auth.service.d.ts +21 -0
- package/lib/services/auth/totp.service.d.ts +18 -0
- package/lib/services/chat/chat-rest.service.d.ts +40 -0
- package/lib/services/chat/chat-websocket.service.d.ts +34 -0
- package/lib/services/chat/index.d.ts +2 -0
- package/lib/services/index.d.ts +7 -0
- package/lib/services/realtime/index.d.ts +1 -0
- package/lib/services/realtime/realtime-event.service.d.ts +137 -0
- package/lib/services/reservoir/index.d.ts +1 -0
- package/lib/services/reservoir/reservoir-websocket.service.d.ts +47 -0
- package/lib/services/video/index.d.ts +2 -0
- package/lib/services/video/video-call-rest.service.d.ts +19 -0
- package/lib/services/video/video-call-websocket.service.d.ts +31 -0
- package/lib/tgm-sdk.config.d.ts +36 -0
- package/lib/tgm-sdk.module.d.ts +13 -0
- package/package.json +40 -0
- package/public-api.d.ts +42 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
export class RecordDetailComponent {
|
|
8
|
+
// ── Data ──
|
|
9
|
+
record;
|
|
10
|
+
entity;
|
|
11
|
+
mode = 'view';
|
|
12
|
+
saving = false;
|
|
13
|
+
// ── Labels ──
|
|
14
|
+
saveLabel = 'Save';
|
|
15
|
+
cancelLabel = 'Cancel';
|
|
16
|
+
deleteLabel = 'Delete';
|
|
17
|
+
editLabel = 'Edit';
|
|
18
|
+
// ── Custom templates ──
|
|
19
|
+
fieldTemplate;
|
|
20
|
+
headerTemplate;
|
|
21
|
+
footerTemplate;
|
|
22
|
+
// ── Events ──
|
|
23
|
+
save = new EventEmitter();
|
|
24
|
+
cancel = new EventEmitter();
|
|
25
|
+
delete = new EventEmitter();
|
|
26
|
+
formData = {};
|
|
27
|
+
ngOnChanges(changes) {
|
|
28
|
+
if (changes['record'] || changes['mode']) {
|
|
29
|
+
this.formData = this.record ? { ...this.record } : {};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
get editableFields() {
|
|
33
|
+
if (!this.entity)
|
|
34
|
+
return [];
|
|
35
|
+
if (this.mode === 'view')
|
|
36
|
+
return this.entity.fields;
|
|
37
|
+
return this.entity.fields.filter(f => f.editable !== false);
|
|
38
|
+
}
|
|
39
|
+
get allFields() {
|
|
40
|
+
return this.entity?.fields ?? [];
|
|
41
|
+
}
|
|
42
|
+
get isReadOnly() {
|
|
43
|
+
return this.mode === 'view';
|
|
44
|
+
}
|
|
45
|
+
onFieldChange(field, value) {
|
|
46
|
+
if (field.type === 'number') {
|
|
47
|
+
this.formData[field.name] = value === '' ? null : Number(value);
|
|
48
|
+
}
|
|
49
|
+
else if (field.type === 'boolean') {
|
|
50
|
+
this.formData[field.name] = value === 'true' || value === true;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.formData[field.name] = value;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
onSave() {
|
|
57
|
+
this.save.emit(this.formData);
|
|
58
|
+
}
|
|
59
|
+
onCancel() {
|
|
60
|
+
this.cancel.emit();
|
|
61
|
+
}
|
|
62
|
+
onDelete() {
|
|
63
|
+
if (this.record) {
|
|
64
|
+
this.delete.emit(this.record);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
getInputType(field) {
|
|
68
|
+
switch (field.type) {
|
|
69
|
+
case 'number': return 'number';
|
|
70
|
+
case 'date': return 'datetime-local';
|
|
71
|
+
default: return 'text';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
trackByName(_index, field) {
|
|
75
|
+
return field.name;
|
|
76
|
+
}
|
|
77
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecordDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RecordDetailComponent, isStandalone: true, selector: "tgm-record-detail", inputs: { record: "record", entity: "entity", mode: "mode", saving: "saving", saveLabel: "saveLabel", cancelLabel: "cancelLabel", deleteLabel: "deleteLabel", editLabel: "editLabel", fieldTemplate: "fieldTemplate", headerTemplate: "headerTemplate", footerTemplate: "footerTemplate" }, outputs: { save: "save", cancel: "cancel", delete: "delete" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tgm-record-detail\" *ngIf=\"entity\">\n <!-- Header -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <div class=\"tgm-record-detail__header\">\n <h4 class=\"tgm-record-detail__title\">\n {{ entity.name }}\n <span class=\"tgm-record-detail__mode-badge\">{{ mode }}</span>\n </h4>\n <span class=\"tgm-record-detail__id\" *ngIf=\"record?.['id']\">\n ID: {{ record?.['id'] }}\n </span>\n </div>\n </ng-template>\n\n <!-- Fields -->\n <div class=\"tgm-record-detail__body\">\n <div\n class=\"tgm-record-detail__field\"\n *ngFor=\"let field of (isReadOnly ? allFields : editableFields); trackBy: trackByName\"\n >\n <ng-container *ngIf=\"fieldTemplate; else defaultField\">\n <ng-container *ngTemplateOutlet=\"fieldTemplate; context: { $implicit: field, value: formData[field.name] }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultField>\n <label class=\"tgm-record-detail__label\">\n {{ field.label }}\n <span class=\"tgm-record-detail__required\" *ngIf=\"field.required && !isReadOnly\">*</span>\n </label>\n\n <!-- View mode -->\n <div class=\"tgm-record-detail__value\" *ngIf=\"isReadOnly\">\n <span *ngIf=\"field.type === 'boolean'\">\n {{ formData[field.name] ? 'Yes' : (formData[field.name] === false ? 'No' : '-') }}\n </span>\n <span *ngIf=\"field.type === 'json' || field.type === 'array'\">\n <code>{{ formData[field.name] | json }}</code>\n </span>\n <span *ngIf=\"field.type !== 'boolean' && field.type !== 'json' && field.type !== 'array'\">\n {{ formData[field.name] ?? '-' }}\n </span>\n </div>\n\n <!-- Edit / Create mode -->\n <ng-container *ngIf=\"!isReadOnly\">\n <!-- Enum -->\n <select\n *ngIf=\"field.type === 'enum'\"\n class=\"tgm-record-detail__input\"\n [value]=\"formData[field.name] ?? ''\"\n (change)=\"onFieldChange(field, $any($event.target).value)\"\n >\n <option value=\"\">-- Select --</option>\n <option *ngFor=\"let val of field.enumValues\" [value]=\"val\">{{ val }}</option>\n </select>\n\n <!-- Boolean -->\n <select\n *ngIf=\"field.type === 'boolean'\"\n class=\"tgm-record-detail__input\"\n [value]=\"formData[field.name]\"\n (change)=\"onFieldChange(field, $any($event.target).value)\"\n >\n <option value=\"\">-- Select --</option>\n <option value=\"true\">Yes</option>\n <option value=\"false\">No</option>\n </select>\n\n <!-- Text / Number / Date -->\n <input\n *ngIf=\"field.type !== 'enum' && field.type !== 'boolean' && field.type !== 'json' && field.type !== 'array'\"\n class=\"tgm-record-detail__input\"\n [type]=\"getInputType(field)\"\n [value]=\"formData[field.name] ?? ''\"\n [required]=\"field.required || false\"\n (input)=\"onFieldChange(field, $any($event.target).value)\"\n />\n\n <!-- JSON / Array -->\n <textarea\n *ngIf=\"field.type === 'json' || field.type === 'array'\"\n class=\"tgm-record-detail__input tgm-record-detail__textarea\"\n [value]=\"formData[field.name] ? (formData[field.name] | json) : ''\"\n (input)=\"onFieldChange(field, $any($event.target).value)\"\n rows=\"3\"\n ></textarea>\n </ng-container>\n </ng-template>\n </div>\n </div>\n\n <!-- Footer -->\n <ng-container *ngIf=\"footerTemplate; else defaultFooter\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultFooter>\n <div class=\"tgm-record-detail__footer\" *ngIf=\"!isReadOnly\">\n <button\n class=\"tgm-db-btn tgm-db-btn--ghost\"\n (click)=\"onCancel()\"\n [disabled]=\"saving\"\n >{{ cancelLabel }}</button>\n <div class=\"tgm-record-detail__footer-right\">\n <button\n *ngIf=\"mode === 'edit' && record?.['id']\"\n class=\"tgm-db-btn tgm-db-btn--danger\"\n (click)=\"onDelete()\"\n [disabled]=\"saving\"\n >{{ deleteLabel }}</button>\n <button\n class=\"tgm-db-btn tgm-db-btn--primary\"\n (click)=\"onSave()\"\n [disabled]=\"saving\"\n >\n <span class=\"tgm-db-spinner--sm\" *ngIf=\"saving\"></span>\n {{ saveLabel }}\n </button>\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;height:100%;overflow:hidden}.tgm-record-detail{display:flex;flex-direction:column;height:100%}.tgm-record-detail__header{display:flex;align-items:center;justify-content:space-between;padding:var(--tgm-db-spacing-sm, 8px) var(--tgm-db-spacing, 16px);border-bottom:1px solid var(--tgm-db-border, rgba(255, 255, 255, .1))}.tgm-record-detail__title{margin:0;font-size:14px;font-weight:600;color:var(--tgm-db-text, #e5e7eb);display:flex;align-items:center;gap:8px}.tgm-record-detail__mode-badge{display:inline-block;padding:2px 8px;font-size:11px;font-weight:500;border-radius:3px;text-transform:uppercase;background:#3b82f626;color:var(--tgm-db-primary, #3b82f6)}.tgm-record-detail__id{font-size:12px;color:var(--tgm-db-text-muted, #6b7280);font-family:var(--tgm-db-font-mono, monospace)}.tgm-record-detail__body{flex:1;overflow-y:auto;padding:var(--tgm-db-spacing, 16px);display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;align-content:start}.tgm-record-detail__field{display:flex;flex-direction:column;gap:4px}.tgm-record-detail__label{font-size:12px;font-weight:500;color:var(--tgm-db-text-secondary, #9ca3af)}.tgm-record-detail__required{color:var(--tgm-db-danger, #ef4444)}.tgm-record-detail__value{font-size:14px;color:var(--tgm-db-text, #e5e7eb);word-break:break-word}.tgm-record-detail__value code{font-family:var(--tgm-db-font-mono, monospace);font-size:12px;background:#ffffff0d;padding:2px 4px;border-radius:3px}.tgm-record-detail__input{padding:6px 10px;background:var(--tgm-db-bg-secondary, rgba(255, 255, 255, .05));border:1px solid var(--tgm-db-border, rgba(255, 255, 255, .1));border-radius:var(--tgm-db-radius-sm, 4px);color:var(--tgm-db-text, #e5e7eb);font-size:13px;font-family:var(--tgm-db-font-family, inherit);outline:none}.tgm-record-detail__input:focus{border-color:var(--tgm-db-primary, #3b82f6)}.tgm-record-detail__input option{background:var(--tgm-db-bg, #1e1e2e);color:var(--tgm-db-text, #e5e7eb)}.tgm-record-detail__textarea{font-family:var(--tgm-db-font-mono, monospace);font-size:12px;resize:vertical;min-height:60px}.tgm-record-detail__footer{display:flex;align-items:center;justify-content:space-between;padding:var(--tgm-db-spacing-sm, 8px) var(--tgm-db-spacing, 16px);border-top:1px solid var(--tgm-db-border, rgba(255, 255, 255, .1));background:var(--tgm-db-bg-secondary, rgba(255, 255, 255, .05))}.tgm-record-detail__footer-right{display:flex;gap:8px}.tgm-db-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:6px 14px;font-size:13px;font-weight:500;border:none;border-radius:var(--tgm-db-radius-sm, 4px);cursor:pointer;transition:background .15s;font-family:var(--tgm-db-font-family, inherit);white-space:nowrap}.tgm-db-btn--primary{background:var(--tgm-db-primary, #3b82f6);color:#fff}.tgm-db-btn--primary:hover:not(:disabled){background:var(--tgm-db-primary-hover, #2563eb)}.tgm-db-btn--ghost{background:transparent;color:var(--tgm-db-text-secondary, #9ca3af)}.tgm-db-btn--ghost:hover:not(:disabled){background:var(--tgm-db-bg-hover, rgba(255, 255, 255, .08));color:var(--tgm-db-text, #e5e7eb)}.tgm-db-btn--danger{background:#ef444426;color:var(--tgm-db-danger, #ef4444)}.tgm-db-btn--danger:hover:not(:disabled){background:#ef444440}.tgm-db-btn:disabled{opacity:.5;cursor:not-allowed}.tgm-db-spinner--sm{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:tgm-db-spin .6s linear infinite}@keyframes tgm-db-spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
|
|
79
|
+
}
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecordDetailComponent, decorators: [{
|
|
81
|
+
type: Component,
|
|
82
|
+
args: [{ selector: 'tgm-record-detail', standalone: true, imports: [CommonModule, FormsModule], template: "<div class=\"tgm-record-detail\" *ngIf=\"entity\">\n <!-- Header -->\n <ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultHeader>\n <div class=\"tgm-record-detail__header\">\n <h4 class=\"tgm-record-detail__title\">\n {{ entity.name }}\n <span class=\"tgm-record-detail__mode-badge\">{{ mode }}</span>\n </h4>\n <span class=\"tgm-record-detail__id\" *ngIf=\"record?.['id']\">\n ID: {{ record?.['id'] }}\n </span>\n </div>\n </ng-template>\n\n <!-- Fields -->\n <div class=\"tgm-record-detail__body\">\n <div\n class=\"tgm-record-detail__field\"\n *ngFor=\"let field of (isReadOnly ? allFields : editableFields); trackBy: trackByName\"\n >\n <ng-container *ngIf=\"fieldTemplate; else defaultField\">\n <ng-container *ngTemplateOutlet=\"fieldTemplate; context: { $implicit: field, value: formData[field.name] }\"></ng-container>\n </ng-container>\n\n <ng-template #defaultField>\n <label class=\"tgm-record-detail__label\">\n {{ field.label }}\n <span class=\"tgm-record-detail__required\" *ngIf=\"field.required && !isReadOnly\">*</span>\n </label>\n\n <!-- View mode -->\n <div class=\"tgm-record-detail__value\" *ngIf=\"isReadOnly\">\n <span *ngIf=\"field.type === 'boolean'\">\n {{ formData[field.name] ? 'Yes' : (formData[field.name] === false ? 'No' : '-') }}\n </span>\n <span *ngIf=\"field.type === 'json' || field.type === 'array'\">\n <code>{{ formData[field.name] | json }}</code>\n </span>\n <span *ngIf=\"field.type !== 'boolean' && field.type !== 'json' && field.type !== 'array'\">\n {{ formData[field.name] ?? '-' }}\n </span>\n </div>\n\n <!-- Edit / Create mode -->\n <ng-container *ngIf=\"!isReadOnly\">\n <!-- Enum -->\n <select\n *ngIf=\"field.type === 'enum'\"\n class=\"tgm-record-detail__input\"\n [value]=\"formData[field.name] ?? ''\"\n (change)=\"onFieldChange(field, $any($event.target).value)\"\n >\n <option value=\"\">-- Select --</option>\n <option *ngFor=\"let val of field.enumValues\" [value]=\"val\">{{ val }}</option>\n </select>\n\n <!-- Boolean -->\n <select\n *ngIf=\"field.type === 'boolean'\"\n class=\"tgm-record-detail__input\"\n [value]=\"formData[field.name]\"\n (change)=\"onFieldChange(field, $any($event.target).value)\"\n >\n <option value=\"\">-- Select --</option>\n <option value=\"true\">Yes</option>\n <option value=\"false\">No</option>\n </select>\n\n <!-- Text / Number / Date -->\n <input\n *ngIf=\"field.type !== 'enum' && field.type !== 'boolean' && field.type !== 'json' && field.type !== 'array'\"\n class=\"tgm-record-detail__input\"\n [type]=\"getInputType(field)\"\n [value]=\"formData[field.name] ?? ''\"\n [required]=\"field.required || false\"\n (input)=\"onFieldChange(field, $any($event.target).value)\"\n />\n\n <!-- JSON / Array -->\n <textarea\n *ngIf=\"field.type === 'json' || field.type === 'array'\"\n class=\"tgm-record-detail__input tgm-record-detail__textarea\"\n [value]=\"formData[field.name] ? (formData[field.name] | json) : ''\"\n (input)=\"onFieldChange(field, $any($event.target).value)\"\n rows=\"3\"\n ></textarea>\n </ng-container>\n </ng-template>\n </div>\n </div>\n\n <!-- Footer -->\n <ng-container *ngIf=\"footerTemplate; else defaultFooter\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultFooter>\n <div class=\"tgm-record-detail__footer\" *ngIf=\"!isReadOnly\">\n <button\n class=\"tgm-db-btn tgm-db-btn--ghost\"\n (click)=\"onCancel()\"\n [disabled]=\"saving\"\n >{{ cancelLabel }}</button>\n <div class=\"tgm-record-detail__footer-right\">\n <button\n *ngIf=\"mode === 'edit' && record?.['id']\"\n class=\"tgm-db-btn tgm-db-btn--danger\"\n (click)=\"onDelete()\"\n [disabled]=\"saving\"\n >{{ deleteLabel }}</button>\n <button\n class=\"tgm-db-btn tgm-db-btn--primary\"\n (click)=\"onSave()\"\n [disabled]=\"saving\"\n >\n <span class=\"tgm-db-spinner--sm\" *ngIf=\"saving\"></span>\n {{ saveLabel }}\n </button>\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;height:100%;overflow:hidden}.tgm-record-detail{display:flex;flex-direction:column;height:100%}.tgm-record-detail__header{display:flex;align-items:center;justify-content:space-between;padding:var(--tgm-db-spacing-sm, 8px) var(--tgm-db-spacing, 16px);border-bottom:1px solid var(--tgm-db-border, rgba(255, 255, 255, .1))}.tgm-record-detail__title{margin:0;font-size:14px;font-weight:600;color:var(--tgm-db-text, #e5e7eb);display:flex;align-items:center;gap:8px}.tgm-record-detail__mode-badge{display:inline-block;padding:2px 8px;font-size:11px;font-weight:500;border-radius:3px;text-transform:uppercase;background:#3b82f626;color:var(--tgm-db-primary, #3b82f6)}.tgm-record-detail__id{font-size:12px;color:var(--tgm-db-text-muted, #6b7280);font-family:var(--tgm-db-font-mono, monospace)}.tgm-record-detail__body{flex:1;overflow-y:auto;padding:var(--tgm-db-spacing, 16px);display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;align-content:start}.tgm-record-detail__field{display:flex;flex-direction:column;gap:4px}.tgm-record-detail__label{font-size:12px;font-weight:500;color:var(--tgm-db-text-secondary, #9ca3af)}.tgm-record-detail__required{color:var(--tgm-db-danger, #ef4444)}.tgm-record-detail__value{font-size:14px;color:var(--tgm-db-text, #e5e7eb);word-break:break-word}.tgm-record-detail__value code{font-family:var(--tgm-db-font-mono, monospace);font-size:12px;background:#ffffff0d;padding:2px 4px;border-radius:3px}.tgm-record-detail__input{padding:6px 10px;background:var(--tgm-db-bg-secondary, rgba(255, 255, 255, .05));border:1px solid var(--tgm-db-border, rgba(255, 255, 255, .1));border-radius:var(--tgm-db-radius-sm, 4px);color:var(--tgm-db-text, #e5e7eb);font-size:13px;font-family:var(--tgm-db-font-family, inherit);outline:none}.tgm-record-detail__input:focus{border-color:var(--tgm-db-primary, #3b82f6)}.tgm-record-detail__input option{background:var(--tgm-db-bg, #1e1e2e);color:var(--tgm-db-text, #e5e7eb)}.tgm-record-detail__textarea{font-family:var(--tgm-db-font-mono, monospace);font-size:12px;resize:vertical;min-height:60px}.tgm-record-detail__footer{display:flex;align-items:center;justify-content:space-between;padding:var(--tgm-db-spacing-sm, 8px) var(--tgm-db-spacing, 16px);border-top:1px solid var(--tgm-db-border, rgba(255, 255, 255, .1));background:var(--tgm-db-bg-secondary, rgba(255, 255, 255, .05))}.tgm-record-detail__footer-right{display:flex;gap:8px}.tgm-db-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:6px 14px;font-size:13px;font-weight:500;border:none;border-radius:var(--tgm-db-radius-sm, 4px);cursor:pointer;transition:background .15s;font-family:var(--tgm-db-font-family, inherit);white-space:nowrap}.tgm-db-btn--primary{background:var(--tgm-db-primary, #3b82f6);color:#fff}.tgm-db-btn--primary:hover:not(:disabled){background:var(--tgm-db-primary-hover, #2563eb)}.tgm-db-btn--ghost{background:transparent;color:var(--tgm-db-text-secondary, #9ca3af)}.tgm-db-btn--ghost:hover:not(:disabled){background:var(--tgm-db-bg-hover, rgba(255, 255, 255, .08));color:var(--tgm-db-text, #e5e7eb)}.tgm-db-btn--danger{background:#ef444426;color:var(--tgm-db-danger, #ef4444)}.tgm-db-btn--danger:hover:not(:disabled){background:#ef444440}.tgm-db-btn:disabled{opacity:.5;cursor:not-allowed}.tgm-db-spinner--sm{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:tgm-db-spin .6s linear infinite}@keyframes tgm-db-spin{to{transform:rotate(360deg)}}\n"] }]
|
|
83
|
+
}], propDecorators: { record: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], entity: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], mode: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], saving: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], saveLabel: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], cancelLabel: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], deleteLabel: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], editLabel: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], fieldTemplate: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], headerTemplate: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], footerTemplate: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], save: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}], cancel: [{
|
|
108
|
+
type: Output
|
|
109
|
+
}], delete: [{
|
|
110
|
+
type: Output
|
|
111
|
+
}] } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZGF0YWJhc2UtbWFuYWdlci9yZWNvcmQtZGV0YWlsL3JlY29yZC1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RhdGFiYXNlLW1hbmFnZXIvcmVjb3JkLWRldGFpbC9yZWNvcmQtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVU3QyxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLGFBQWE7SUFDSixNQUFNLENBQXVCO0lBQzdCLE1BQU0sQ0FBdUI7SUFDN0IsSUFBSSxHQUErQixNQUFNLENBQUM7SUFDMUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUV4QixlQUFlO0lBQ04sU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUNuQixXQUFXLEdBQUcsUUFBUSxDQUFDO0lBQ3ZCLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDdkIsU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUU1Qix5QkFBeUI7SUFDaEIsYUFBYSxDQUEyRDtJQUN4RSxjQUFjLENBQXFCO0lBQ25DLGNBQWMsQ0FBcUI7SUFFNUMsZUFBZTtJQUNMLElBQUksR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztJQUMvQyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUNsQyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7SUFFM0QsUUFBUSxHQUF3QixFQUFFLENBQUM7SUFFbkMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBc0IsRUFBRSxLQUFVO1FBQzlDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRSxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxNQUFNLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQztRQUNqRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQXNCO1FBQ2pDLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxRQUFRLENBQUM7WUFDL0IsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLGdCQUFnQixDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxLQUFzQjtRQUNoRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDcEIsQ0FBQzt3R0EvRVUscUJBQXFCOzRGQUFyQixxQkFBcUIsNmJDcEJsQyxrd0pBNEhBLDJnSEQ1R1ksWUFBWSx5ZEFBRSxXQUFXOzs0RkFJeEIscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDOzhCQU0zQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFHSSxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVudGl0eVJlZ2lzdHJ5RW50cnksIEVudGl0eUZpZWxkTWV0YSB9IGZyb20gJy4uL3R5cGVzL2RhdGFiYXNlLW1hbmFnZXIudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0Z20tcmVjb3JkLWRldGFpbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY29yZC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNvcmQtZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJlY29yZERldGFpbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8vIOKUgOKUgCBEYXRhIOKUgOKUgFxuICBASW5wdXQoKSByZWNvcmQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBASW5wdXQoKSBlbnRpdHk/OiBFbnRpdHlSZWdpc3RyeUVudHJ5O1xuICBASW5wdXQoKSBtb2RlOiAndmlldycgfCAnZWRpdCcgfCAnY3JlYXRlJyA9ICd2aWV3JztcbiAgQElucHV0KCkgc2F2aW5nID0gZmFsc2U7XG5cbiAgLy8g4pSA4pSAIExhYmVscyDilIDilIBcbiAgQElucHV0KCkgc2F2ZUxhYmVsID0gJ1NhdmUnO1xuICBASW5wdXQoKSBjYW5jZWxMYWJlbCA9ICdDYW5jZWwnO1xuICBASW5wdXQoKSBkZWxldGVMYWJlbCA9ICdEZWxldGUnO1xuICBASW5wdXQoKSBlZGl0TGFiZWwgPSAnRWRpdCc7XG5cbiAgLy8g4pSA4pSAIEN1c3RvbSB0ZW1wbGF0ZXMg4pSA4pSAXG4gIEBJbnB1dCgpIGZpZWxkVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogRW50aXR5RmllbGRNZXRhOyB2YWx1ZTogYW55IH0+O1xuICBASW5wdXQoKSBoZWFkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBASW5wdXQoKSBmb290ZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIC8vIOKUgOKUgCBFdmVudHMg4pSA4pSAXG4gIEBPdXRwdXQoKSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xuXG4gIGZvcm1EYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydyZWNvcmQnXSB8fCBjaGFuZ2VzWydtb2RlJ10pIHtcbiAgICAgIHRoaXMuZm9ybURhdGEgPSB0aGlzLnJlY29yZCA/IHsgLi4udGhpcy5yZWNvcmQgfSA6IHt9O1xuICAgIH1cbiAgfVxuXG4gIGdldCBlZGl0YWJsZUZpZWxkcygpOiBFbnRpdHlGaWVsZE1ldGFbXSB7XG4gICAgaWYgKCF0aGlzLmVudGl0eSkgcmV0dXJuIFtdO1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICd2aWV3JykgcmV0dXJuIHRoaXMuZW50aXR5LmZpZWxkcztcbiAgICByZXR1cm4gdGhpcy5lbnRpdHkuZmllbGRzLmZpbHRlcihmID0+IGYuZWRpdGFibGUgIT09IGZhbHNlKTtcbiAgfVxuXG4gIGdldCBhbGxGaWVsZHMoKTogRW50aXR5RmllbGRNZXRhW10ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eT8uZmllbGRzID8/IFtdO1xuICB9XG5cbiAgZ2V0IGlzUmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ3ZpZXcnO1xuICB9XG5cbiAgb25GaWVsZENoYW5nZShmaWVsZDogRW50aXR5RmllbGRNZXRhLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLmZvcm1EYXRhW2ZpZWxkLm5hbWVdID0gdmFsdWUgPT09ICcnID8gbnVsbCA6IE51bWJlcih2YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChmaWVsZC50eXBlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuZm9ybURhdGFbZmllbGQubmFtZV0gPSB2YWx1ZSA9PT0gJ3RydWUnIHx8IHZhbHVlID09PSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1EYXRhW2ZpZWxkLm5hbWVdID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgb25TYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZS5lbWl0KHRoaXMuZm9ybURhdGEpO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgb25EZWxldGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkKSB7XG4gICAgICB0aGlzLmRlbGV0ZS5lbWl0KHRoaXMucmVjb3JkKTtcbiAgICB9XG4gIH1cblxuICBnZXRJbnB1dFR5cGUoZmllbGQ6IEVudGl0eUZpZWxkTWV0YSk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlICdudW1iZXInOiByZXR1cm4gJ251bWJlcic7XG4gICAgICBjYXNlICdkYXRlJzogcmV0dXJuICdkYXRldGltZS1sb2NhbCc7XG4gICAgICBkZWZhdWx0OiByZXR1cm4gJ3RleHQnO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlOYW1lKF9pbmRleDogbnVtYmVyLCBmaWVsZDogRW50aXR5RmllbGRNZXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZmllbGQubmFtZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRnbS1yZWNvcmQtZGV0YWlsXCIgKm5nSWY9XCJlbnRpdHlcIj5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0SGVhZGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRIZWFkZXI+XG4gICAgPGRpdiBjbGFzcz1cInRnbS1yZWNvcmQtZGV0YWlsX19oZWFkZXJcIj5cbiAgICAgIDxoNCBjbGFzcz1cInRnbS1yZWNvcmQtZGV0YWlsX190aXRsZVwiPlxuICAgICAgICB7eyBlbnRpdHkubmFtZSB9fVxuICAgICAgICA8c3BhbiBjbGFzcz1cInRnbS1yZWNvcmQtZGV0YWlsX19tb2RlLWJhZGdlXCI+e3sgbW9kZSB9fTwvc3Bhbj5cbiAgICAgIDwvaDQ+XG4gICAgICA8c3BhbiBjbGFzcz1cInRnbS1yZWNvcmQtZGV0YWlsX19pZFwiICpuZ0lmPVwicmVjb3JkPy5bJ2lkJ11cIj5cbiAgICAgICAgSUQ6IHt7IHJlY29yZD8uWydpZCddIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBGaWVsZHMgLS0+XG4gIDxkaXYgY2xhc3M9XCJ0Z20tcmVjb3JkLWRldGFpbF9fYm9keVwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidGdtLXJlY29yZC1kZXRhaWxfX2ZpZWxkXCJcbiAgICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiAoaXNSZWFkT25seSA/IGFsbEZpZWxkcyA6IGVkaXRhYmxlRmllbGRzKTsgdHJhY2tCeTogdHJhY2tCeU5hbWVcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRGaWVsZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmllbGRUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpZWxkLCB2YWx1ZTogZm9ybURhdGFbZmllbGQubmFtZV0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZpZWxkPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0Z20tcmVjb3JkLWRldGFpbF9fbGFiZWxcIj5cbiAgICAgICAgICB7eyBmaWVsZC5sYWJlbCB9fVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGdtLXJlY29yZC1kZXRhaWxfX3JlcXVpcmVkXCIgKm5nSWY9XCJmaWVsZC5yZXF1aXJlZCAmJiAhaXNSZWFkT25seVwiPio8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPCEtLSBWaWV3IG1vZGUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0Z20tcmVjb3JkLWRldGFpbF9fdmFsdWVcIiAqbmdJZj1cImlzUmVhZE9ubHlcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImZpZWxkLnR5cGUgPT09ICdib29sZWFuJ1wiPlxuICAgICAgICAgICAge3sgZm9ybURhdGFbZmllbGQubmFtZV0gPyAnWWVzJyA6IChmb3JtRGF0YVtmaWVsZC5uYW1lXSA9PT0gZmFsc2UgPyAnTm8nIDogJy0nKSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImZpZWxkLnR5cGUgPT09ICdqc29uJyB8fCBmaWVsZC50eXBlID09PSAnYXJyYXknXCI+XG4gICAgICAgICAgICA8Y29kZT57eyBmb3JtRGF0YVtmaWVsZC5uYW1lXSB8IGpzb24gfX08L2NvZGU+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmllbGQudHlwZSAhPT0gJ2Jvb2xlYW4nICYmIGZpZWxkLnR5cGUgIT09ICdqc29uJyAmJiBmaWVsZC50eXBlICE9PSAnYXJyYXknXCI+XG4gICAgICAgICAgICB7eyBmb3JtRGF0YVtmaWVsZC5uYW1lXSA/PyAnLScgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gRWRpdCAvIENyZWF0ZSBtb2RlIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmVhZE9ubHlcIj5cbiAgICAgICAgICA8IS0tIEVudW0gLS0+XG4gICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgKm5nSWY9XCJmaWVsZC50eXBlID09PSAnZW51bSdcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0Z20tcmVjb3JkLWRldGFpbF9faW5wdXRcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1EYXRhW2ZpZWxkLm5hbWVdID8/ICcnXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWVsZENoYW5nZShmaWVsZCwgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj4tLSBTZWxlY3QgLS08L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHZhbCBvZiBmaWVsZC5lbnVtVmFsdWVzXCIgW3ZhbHVlXT1cInZhbFwiPnt7IHZhbCB9fTwvb3B0aW9uPlxuICAgICAgICAgIDwvc2VsZWN0PlxuXG4gICAgICAgICAgPCEtLSBCb29sZWFuIC0tPlxuICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gJ2Jvb2xlYW4nXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGdtLXJlY29yZC1kZXRhaWxfX2lucHV0XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtRGF0YVtmaWVsZC5uYW1lXVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmllbGRDaGFuZ2UoZmllbGQsICRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+LS0gU2VsZWN0IC0tPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwidHJ1ZVwiPlllczwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImZhbHNlXCI+Tm88L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cblxuICAgICAgICAgIDwhLS0gVGV4dCAvIE51bWJlciAvIERhdGUgLS0+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAqbmdJZj1cImZpZWxkLnR5cGUgIT09ICdlbnVtJyAmJiBmaWVsZC50eXBlICE9PSAnYm9vbGVhbicgJiYgZmllbGQudHlwZSAhPT0gJ2pzb24nICYmIGZpZWxkLnR5cGUgIT09ICdhcnJheSdcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0Z20tcmVjb3JkLWRldGFpbF9faW5wdXRcIlxuICAgICAgICAgICAgW3R5cGVdPVwiZ2V0SW5wdXRUeXBlKGZpZWxkKVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZm9ybURhdGFbZmllbGQubmFtZV0gPz8gJydcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJvbkZpZWxkQ2hhbmdlKGZpZWxkLCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgICAgLz5cblxuICAgICAgICAgIDwhLS0gSlNPTiAvIEFycmF5IC0tPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgKm5nSWY9XCJmaWVsZC50eXBlID09PSAnanNvbicgfHwgZmllbGQudHlwZSA9PT0gJ2FycmF5J1wiXG4gICAgICAgICAgICBjbGFzcz1cInRnbS1yZWNvcmQtZGV0YWlsX19pbnB1dCB0Z20tcmVjb3JkLWRldGFpbF9fdGV4dGFyZWFcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1EYXRhW2ZpZWxkLm5hbWVdID8gKGZvcm1EYXRhW2ZpZWxkLm5hbWVdIHwganNvbikgOiAnJ1wiXG4gICAgICAgICAgICAoaW5wdXQpPVwib25GaWVsZENoYW5nZShmaWVsZCwgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxuICAgICAgICAgICAgcm93cz1cIjNcIlxuICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRm9vdGVyIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9vdGVyVGVtcGxhdGU7IGVsc2UgZGVmYXVsdEZvb3RlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Rm9vdGVyPlxuICAgIDxkaXYgY2xhc3M9XCJ0Z20tcmVjb3JkLWRldGFpbF9fZm9vdGVyXCIgKm5nSWY9XCIhaXNSZWFkT25seVwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInRnbS1kYi1idG4gdGdtLWRiLWJ0bi0tZ2hvc3RcIlxuICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzYXZpbmdcIlxuICAgICAgPnt7IGNhbmNlbExhYmVsIH19PC9idXR0b24+XG4gICAgICA8ZGl2IGNsYXNzPVwidGdtLXJlY29yZC1kZXRhaWxfX2Zvb3Rlci1yaWdodFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgcmVjb3JkPy5bJ2lkJ11cIlxuICAgICAgICAgIGNsYXNzPVwidGdtLWRiLWJ0biB0Z20tZGItYnRuLS1kYW5nZXJcIlxuICAgICAgICAgIChjbGljayk9XCJvbkRlbGV0ZSgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwic2F2aW5nXCJcbiAgICAgICAgPnt7IGRlbGV0ZUxhYmVsIH19PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInRnbS1kYi1idG4gdGdtLWRiLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2F2ZSgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwic2F2aW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGdtLWRiLXNwaW5uZXItLXNtXCIgKm5nSWY9XCJzYXZpbmdcIj48L3NwYW4+XG4gICAgICAgICAge3sgc2F2ZUxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|