@memberjunction/ng-core-entity-forms 6.2.0-edge.2 → 6.2.0-edge.4
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/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.d.ts.map +1 -1
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js +9 -5
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js.map +1 -1
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts +4 -0
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts.map +1 -1
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js +67 -36
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +5 -0
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +13 -9
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +1 -0
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/Companies/company-header.panel.d.ts.map +1 -1
- package/dist/lib/custom/Companies/company-header.panel.js +9 -5
- package/dist/lib/custom/Companies/company-header.panel.js.map +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.d.ts +4 -0
- package/dist/lib/custom/Companies/company-overview.panel.d.ts.map +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.js +68 -37
- package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -1
- package/dist/lib/custom/Conversations/conversation-header.panel.d.ts.map +1 -1
- package/dist/lib/custom/Conversations/conversation-header.panel.js +9 -5
- package/dist/lib/custom/Conversations/conversation-header.panel.js.map +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +25 -4
- package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts.map +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.js +212 -90
- package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
- package/dist/lib/custom/Employees/employee-header.panel.d.ts.map +1 -1
- package/dist/lib/custom/Employees/employee-header.panel.js +9 -5
- package/dist/lib/custom/Employees/employee-header.panel.js.map +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.d.ts +4 -0
- package/dist/lib/custom/Employees/employee-overview.panel.d.ts.map +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.js +68 -37
- package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.d.ts +8 -0
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +19 -4
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/Files/file-form.component.d.ts +5 -5
- package/dist/lib/custom/Files/file-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Files/file-form.component.js +227 -157
- package/dist/lib/custom/Files/file-form.component.js.map +1 -1
- package/dist/lib/custom/Files/file-form.logic.d.ts +24 -0
- package/dist/lib/custom/Files/file-form.logic.d.ts.map +1 -0
- package/dist/lib/custom/Files/file-form.logic.js +57 -0
- package/dist/lib/custom/Files/file-form.logic.js.map +1 -0
- package/dist/lib/custom/HierarchyPanels/hierarchy-form-panels.d.ts.map +1 -1
- package/dist/lib/custom/HierarchyPanels/hierarchy-form-panels.js +60 -45
- package/dist/lib/custom/HierarchyPanels/hierarchy-form-panels.js.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +4 -2
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +3 -2
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Rubrics/rubric-form.component.js +1 -1
- package/dist/lib/custom/Rubrics/rubric-form.component.js.map +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts.map +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js +1 -0
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +3 -2
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +1 -0
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +1 -0
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +1 -0
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +1 -0
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/Users/user-header.panel.d.ts.map +1 -1
- package/dist/lib/custom/Users/user-header.panel.js +9 -5
- package/dist/lib/custom/Users/user-header.panel.js.map +1 -1
- package/dist/lib/custom/Users/user-overview.panel.d.ts +4 -0
- package/dist/lib/custom/Users/user-overview.panel.d.ts.map +1 -1
- package/dist/lib/custom/Users/user-overview.panel.js +64 -33
- package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts +34 -0
- package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts.map +1 -0
- package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js +33 -0
- package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +3 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +261 -242
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +35 -34
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +6 -2
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +98 -44
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.js +5 -9
- package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js +15 -18
- package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.js +5 -9
- package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js +27 -9
- package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentSessionBridge/mjaiagentsessionbridge.form.component.js +17 -15
- package/dist/lib/generated/Entities/MJAIAgentSessionBridge/mjaiagentsessionbridge.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIBridgeProvider/mjaibridgeprovider.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIBridgeProvider/mjaibridgeprovider.form.component.js +25 -7
- package/dist/lib/generated/Entities/MJAIBridgeProvider/mjaibridgeprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js +12 -14
- package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.js +5 -9
- package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.js +5 -9
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js +26 -8
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.js +4 -7
- package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.js +4 -7
- package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +49 -13
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.js +5 -9
- package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.js +111 -0
- package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js +73 -75
- package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +34 -16
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.js +5 -9
- package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +169 -97
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.js +8 -11
- package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js +15 -18
- package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityFormContribution/mjentityformcontribution.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJEntityFormContribution/mjentityformcontribution.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJEntityFormContribution/mjentityformcontribution.form.component.js +148 -0
- package/dist/lib/generated/Entities/MJEntityFormContribution/mjentityformcontribution.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js +53 -56
- package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJInteraction/mjinteraction.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJInteraction/mjinteraction.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJInteraction/mjinteraction.form.component.js +161 -0
- package/dist/lib/generated/Entities/MJInteraction/mjinteraction.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJInteractionEvent/mjinteractionevent.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJInteractionEvent/mjinteractionevent.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJInteractionEvent/mjinteractionevent.form.component.js +78 -0
- package/dist/lib/generated/Entities/MJInteractionEvent/mjinteractionevent.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJInteractionLink/mjinteractionlink.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJInteractionLink/mjinteractionlink.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJInteractionLink/mjinteractionlink.form.component.js +68 -0
- package/dist/lib/generated/Entities/MJInteractionLink/mjinteractionlink.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJInteractionOffer/mjinteractionoffer.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJInteractionOffer/mjinteractionoffer.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJInteractionOffer/mjinteractionoffer.form.component.js +100 -0
- package/dist/lib/generated/Entities/MJInteractionOffer/mjinteractionoffer.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJMeeting/mjmeeting.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJMeeting/mjmeeting.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJMeeting/mjmeeting.form.component.js +119 -0
- package/dist/lib/generated/Entities/MJMeeting/mjmeeting.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJMeetingParticipant/mjmeetingparticipant.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJMeetingParticipant/mjmeetingparticipant.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJMeetingParticipant/mjmeetingparticipant.form.component.js +92 -0
- package/dist/lib/generated/Entities/MJMeetingParticipant/mjmeetingparticipant.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJNumberPool/mjnumberpool.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJNumberPool/mjnumberpool.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJNumberPool/mjnumberpool.form.component.js +87 -0
- package/dist/lib/generated/Entities/MJNumberPool/mjnumberpool.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJPhoneNumber/mjphonenumber.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJPhoneNumber/mjphonenumber.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJPhoneNumber/mjphonenumber.form.component.js +129 -0
- package/dist/lib/generated/Entities/MJPhoneNumber/mjphonenumber.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.js +5 -9
- package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.js +8 -11
- package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js +36 -40
- package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js +39 -21
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js +45 -48
- package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.js +106 -0
- package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js +15 -18
- package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +822 -676
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js +24 -6
- package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.js +5 -9
- package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkQueueDeduplication/mjworkqueuededuplication.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJWorkQueueDeduplication/mjworkqueuededuplication.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueDeduplication/mjworkqueuededuplication.form.component.js +64 -0
- package/dist/lib/generated/Entities/MJWorkQueueDeduplication/mjworkqueuededuplication.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueDelivery/mjworkqueuedelivery.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJWorkQueueDelivery/mjworkqueuedelivery.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueDelivery/mjworkqueuedelivery.form.component.js +94 -0
- package/dist/lib/generated/Entities/MJWorkQueueDelivery/mjworkqueuedelivery.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueMessage/mjworkqueuemessage.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJWorkQueueMessage/mjworkqueuemessage.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueMessage/mjworkqueuemessage.form.component.js +91 -0
- package/dist/lib/generated/Entities/MJWorkQueueMessage/mjworkqueuemessage.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueSubscription/mjworkqueuesubscription.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJWorkQueueSubscription/mjworkqueuesubscription.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueSubscription/mjworkqueuesubscription.form.component.js +105 -0
- package/dist/lib/generated/Entities/MJWorkQueueSubscription/mjworkqueuesubscription.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueTopic/mjworkqueuetopic.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJWorkQueueTopic/mjworkqueuetopic.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueTopic/mjworkqueuetopic.form.component.js +129 -0
- package/dist/lib/generated/Entities/MJWorkQueueTopic/mjworkqueuetopic.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueTransport/mjworkqueuetransport.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJWorkQueueTransport/mjworkqueuetransport.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJWorkQueueTransport/mjworkqueuetransport.form.component.js +85 -0
- package/dist/lib/generated/Entities/MJWorkQueueTransport/mjworkqueuetransport.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js +17 -20
- package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +448 -431
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +63 -12
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/panels/ai-agents/agent-realtime.panel.d.ts +7 -1
- package/dist/lib/panels/ai-agents/agent-realtime.panel.d.ts.map +1 -1
- package/dist/lib/panels/ai-agents/agent-realtime.panel.js +89 -43
- package/dist/lib/panels/ai-agents/agent-realtime.panel.js.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js +3 -3
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +5 -5
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +4 -4
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -1
- package/dist/lib/panels/form-chrome/entity-relationship-form-role.panel.js +3 -3
- package/dist/lib/panels/form-chrome/entity-relationship-form-role.panel.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.js +4 -4
- package/dist/lib/panels/model-predictions/model-prediction.panel.js.map +1 -1
- package/package.json +48 -47
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"company-header.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Companies/company-header.panel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAkB,MAAM,+BAA+B,CAAC;;AAIhF,
|
|
1
|
+
{"version":3,"file":"company-header.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Companies/company-header.panel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAkB,MAAM,+BAA+B,CAAC;;AAIhF,qBAiGa,kBAAmB,SAAQ,aAAa,CAAC,eAAe,CAAC;IAC3D,WAAW,UAAS;IAEpB,QAAQ,IAAI,IAAI;IAKvB,IAAW,OAAO,IAAI,eAAe,GAAG,IAAI,CAE3C;IAEM,eAAe,IAAI,IAAI;yCAZrB,kBAAkB;2CAAlB,kBAAkB;CAgB9B"}
|
|
@@ -125,11 +125,15 @@ let CompanyHeaderPanel = class CompanyHeaderPanel extends BaseFormPanel {
|
|
|
125
125
|
};
|
|
126
126
|
CompanyHeaderPanel = __decorate([
|
|
127
127
|
RegisterClassEx(BaseFormPanel, {
|
|
128
|
-
key: 'form-panel:Companies:header',
|
|
128
|
+
key: 'form-panel:MJ: Companies:header',
|
|
129
129
|
metadata: {
|
|
130
|
-
entity: 'Companies',
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
entity: 'MJ: Companies',
|
|
131
|
+
// A hero is a bare strip in before-fields. Its sortKey is above the overview's
|
|
132
|
+
// (higher draws first), so it draws above the overview cards.
|
|
133
|
+
slot: 'before-fields',
|
|
134
|
+
presentation: 'bare',
|
|
135
|
+
contributionKey: 'companies:header',
|
|
136
|
+
sortKey: 20,
|
|
133
137
|
},
|
|
134
138
|
})
|
|
135
139
|
], CompanyHeaderPanel);
|
|
@@ -186,5 +190,5 @@ export { CompanyHeaderPanel };
|
|
|
186
190
|
}
|
|
187
191
|
`, styles: ["\n :host { display: block; width: 100%; }\n .mj-entity-hero-header {\n background: linear-gradient(180deg, var(--mj-bg-surface, #111a2e) 0%, var(--mj-bg-surface-card, #141f36) 100%);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n padding: 16px 24px;\n }\n .mj-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }\n .mj-hero-identity { display: flex; align-items: center; gap: 14px; }\n .mj-hero-avatar {\n width: 44px; height: 44px; border-radius: 10px;\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: #fff; flex-shrink: 0;\n }\n .mj-hero-title { font-size: 18px; font-weight: 800; color: var(--mj-text-primary, #f8fafc); }\n .mj-hero-subline { font-size: 12.5px; color: var(--mj-text-secondary, #94a3b8); margin-top: 2px; display: flex; gap: 8px; align-items: center; }\n .mj-hero-toggle-btn {\n background: none; border: 1px solid var(--mj-border-default, #223254);\n color: var(--mj-text-muted, #64748b); border-radius: 6px;\n padding: 6px 10px; cursor: pointer;\n }\n .mj-hero-metrics-row {\n display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px; margin-top: 14px; padding-top: 12px;\n border-top: 1px solid rgba(255, 255, 255, 0.05);\n }\n .mj-hero-metric { display: flex; flex-direction: column; gap: 2px; }\n .mj-hero-metric-label { font-size: 10.5px; font-weight: 700; color: var(--mj-text-muted, #64748b); text-transform: uppercase; }\n .mj-hero-metric-val { font-size: 14px; font-weight: 700; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n "] }]
|
|
188
192
|
}], null, null); })();
|
|
189
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompanyHeaderPanel, { className: "CompanyHeaderPanel", filePath: "src/lib/custom/Companies/company-header.panel.ts", lineNumber:
|
|
193
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompanyHeaderPanel, { className: "CompanyHeaderPanel", filePath: "src/lib/custom/Companies/company-header.panel.ts", lineNumber: 106 }); })();
|
|
190
194
|
//# sourceMappingURL=company-header.panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"company-header.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/Companies/company-header.panel.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAmB,cAAc,EAAE,MAAM,+BAA+B,CAAC;;;
|
|
1
|
+
{"version":3,"file":"company-header.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/Companies/company-header.panel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel } from '@memberjunction/ng-base-forms';\nimport { MJCompanyEntity, UserInfoEngine } from '@memberjunction/core-entities';\n\nconst SETTING_KEY = 'mj.form.companies.headerCollapsed';\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJ: Companies:header',\n metadata: {\n entity: 'MJ: Companies',\n // A hero is a bare strip in before-fields. Its sortKey is above the overview's\n // (higher draws first), so it draws above the overview cards.\n slot: 'before-fields',\n presentation: 'bare',\n contributionKey: 'companies:header',\n sortKey: 20,\n },\n})\n@Component({\n selector: 'mj-company-header-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (Company) {\n <div class=\"mj-entity-hero-header\">\n <div class=\"mj-hero-top\">\n <div class=\"mj-hero-identity\">\n <div class=\"mj-hero-avatar\" style=\"background: linear-gradient(135deg, #3b82f6, #1d4ed8);\">\n <i class=\"fa-solid fa-building-flag\"></i>\n </div>\n <div>\n <h1 class=\"mj-hero-title\">{{ Company.Name || 'Operating Company' }}</h1>\n <div class=\"mj-hero-subline\">\n @if (Company.Description) {\n <span>{{ Company.Description }}</span>\n }\n @if (Company.Website) {\n <span>•</span>\n <span>{{ Company.Website }}</span>\n }\n </div>\n </div>\n </div>\n <div class=\"mj-hero-actions\">\n <button type=\"button\" class=\"mj-hero-toggle-btn\" (click)=\"ToggleCollapsed()\" [title]=\"IsCollapsed ? 'Expand Header' : 'Collapse Header'\">\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"!IsCollapsed\" [class.fa-chevron-down]=\"IsCollapsed\"></i>\n </button>\n </div>\n </div>\n\n @if (!IsCollapsed) {\n <div class=\"mj-hero-metrics-row\">\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">Company ID</span>\n <span class=\"mj-hero-metric-val\">{{ Company.ID?.substring(0, 8) }}</span>\n </div>\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">Corporate Structure</span>\n <span class=\"mj-hero-metric-val\" style=\"color: #38bdf8;\">Operating Entity</span>\n </div>\n @if (Company.Website) {\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">Website</span>\n <span class=\"mj-hero-metric-val\">{{ Company.Website }}</span>\n </div>\n }\n </div>\n }\n </div>\n }\n `,\n styles: [`\n :host { display: block; width: 100%; }\n .mj-entity-hero-header {\n background: linear-gradient(180deg, var(--mj-bg-surface, #111a2e) 0%, var(--mj-bg-surface-card, #141f36) 100%);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n padding: 16px 24px;\n }\n .mj-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }\n .mj-hero-identity { display: flex; align-items: center; gap: 14px; }\n .mj-hero-avatar {\n width: 44px; height: 44px; border-radius: 10px;\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: #fff; flex-shrink: 0;\n }\n .mj-hero-title { font-size: 18px; font-weight: 800; color: var(--mj-text-primary, #f8fafc); }\n .mj-hero-subline { font-size: 12.5px; color: var(--mj-text-secondary, #94a3b8); margin-top: 2px; display: flex; gap: 8px; align-items: center; }\n .mj-hero-toggle-btn {\n background: none; border: 1px solid var(--mj-border-default, #223254);\n color: var(--mj-text-muted, #64748b); border-radius: 6px;\n padding: 6px 10px; cursor: pointer;\n }\n .mj-hero-metrics-row {\n display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px; margin-top: 14px; padding-top: 12px;\n border-top: 1px solid rgba(255, 255, 255, 0.05);\n }\n .mj-hero-metric { display: flex; flex-direction: column; gap: 2px; }\n .mj-hero-metric-label { font-size: 10.5px; font-weight: 700; color: var(--mj-text-muted, #64748b); text-transform: uppercase; }\n .mj-hero-metric-val { font-size: 14px; font-weight: 700; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n `]\n})\nexport class CompanyHeaderPanel extends BaseFormPanel<MJCompanyEntity> {\n public IsCollapsed = false;\n\n public ngOnInit(): void {\n const raw = UserInfoEngine.Instance.GetSetting(SETTING_KEY);\n if (raw) this.IsCollapsed = raw === 'true';\n }\n\n public get Company(): MJCompanyEntity | null {\n return this.Record;\n }\n\n public ToggleCollapsed(): void {\n this.IsCollapsed = !this.IsCollapsed;\n UserInfoEngine.Instance.SetSettingDebounced(SETTING_KEY, String(this.IsCollapsed));\n }\n}\n"]}
|
|
@@ -11,9 +11,13 @@ interface EmployeeRow {
|
|
|
11
11
|
export declare class CompanyOverviewPanel extends BaseFormPanel<MJCompanyEntity> implements OnInit {
|
|
12
12
|
private cdr;
|
|
13
13
|
Employees: EmployeeRow[];
|
|
14
|
+
/** Set when the query fails, so the card shows the failure instead of an empty list. */
|
|
15
|
+
LoadError: string | null;
|
|
14
16
|
get Company(): MJCompanyEntity | null;
|
|
15
17
|
ngOnInit(): void;
|
|
16
18
|
private loadEmployees;
|
|
19
|
+
/** Shows a short "could not load" line, with the underlying message when there is one. */
|
|
20
|
+
private showLoadError;
|
|
17
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<CompanyOverviewPanel, never>;
|
|
18
22
|
static ɵcmp: i0.ɵɵComponentDeclaration<CompanyOverviewPanel, "mj-company-overview-panel", never, {}, {}, never, never, true, never>;
|
|
19
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"company-overview.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Companies/company-overview.panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,MAAM,EAA6B,MAAM,eAAe,CAAC;AAItG,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;;AAEhE,UAAU,WAAW;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,
|
|
1
|
+
{"version":3,"file":"company-overview.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Companies/company-overview.panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,MAAM,EAA6B,MAAM,eAAe,CAAC;AAItG,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;;AAEhE,UAAU,WAAW;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,qBAyHa,oBAAqB,SAAQ,aAAa,CAAC,eAAe,CAAE,YAAW,MAAM;IACtF,OAAO,CAAC,GAAG,CAA6B;IACjC,SAAS,EAAE,WAAW,EAAE,CAAM;IACrC,wFAAwF;IACjF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEvC,IAAW,OAAO,IAAI,eAAe,GAAG,IAAI,CAE3C;IAEM,QAAQ,IAAI,IAAI;YAIT,aAAa;IAuB3B,0FAA0F;IAC1F,OAAO,CAAC,aAAa;yCAtCZ,oBAAoB;2CAApB,oBAAoB;CAyChC"}
|
|
@@ -11,36 +11,56 @@ import { RegisterClassEx } from '@memberjunction/global';
|
|
|
11
11
|
import { BaseFormPanel } from '@memberjunction/ng-base-forms';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
const _forTrack0 = ($index, $item) => $item.ID;
|
|
14
|
-
function
|
|
14
|
+
function CompanyOverviewPanel_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
+
i0.ɵɵdomElementStart(0, "span", 5);
|
|
16
|
+
i0.ɵɵtext(1);
|
|
17
|
+
i0.ɵɵdomElementEnd();
|
|
18
|
+
} if (rf & 2) {
|
|
19
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
20
|
+
i0.ɵɵadvance();
|
|
21
|
+
i0.ɵɵtextInterpolate1("", ctx_r0.Employees.length, " Members");
|
|
22
|
+
} }
|
|
23
|
+
function CompanyOverviewPanel_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
15
24
|
i0.ɵɵdomElementStart(0, "span", 7);
|
|
25
|
+
i0.ɵɵtext(1);
|
|
26
|
+
i0.ɵɵdomElementEnd();
|
|
27
|
+
} if (rf & 2) {
|
|
28
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
29
|
+
i0.ɵɵadvance();
|
|
30
|
+
i0.ɵɵtextInterpolate(ctx_r0.LoadError);
|
|
31
|
+
} }
|
|
32
|
+
function CompanyOverviewPanel_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
+
i0.ɵɵdomElementStart(0, "span", 8);
|
|
16
34
|
i0.ɵɵtext(1, "No employees assigned directly to this company.");
|
|
17
35
|
i0.ɵɵdomElementEnd();
|
|
18
36
|
} }
|
|
19
37
|
function CompanyOverviewPanel_Conditional_10_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
-
i0.ɵɵdomElementStart(0, "div",
|
|
38
|
+
i0.ɵɵdomElementStart(0, "div", 10)(1, "span", 11);
|
|
21
39
|
i0.ɵɵtext(2);
|
|
22
40
|
i0.ɵɵdomElementEnd();
|
|
23
|
-
i0.ɵɵdomElementStart(3, "span",
|
|
41
|
+
i0.ɵɵdomElementStart(3, "span", 14);
|
|
24
42
|
i0.ɵɵtext(4);
|
|
25
43
|
i0.ɵɵdomElementEnd()();
|
|
26
44
|
} if (rf & 2) {
|
|
27
|
-
const
|
|
45
|
+
const emp_r2 = ctx.$implicit;
|
|
28
46
|
i0.ɵɵadvance(2);
|
|
29
|
-
i0.ɵɵtextInterpolate2("",
|
|
47
|
+
i0.ɵɵtextInterpolate2("", emp_r2.FirstName, " ", emp_r2.LastName);
|
|
30
48
|
i0.ɵɵadvance(2);
|
|
31
|
-
i0.ɵɵtextInterpolate(
|
|
49
|
+
i0.ɵɵtextInterpolate(emp_r2.Title || "Staff");
|
|
32
50
|
} }
|
|
33
51
|
function CompanyOverviewPanel_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
34
|
-
i0.ɵɵrepeaterCreate(0, CompanyOverviewPanel_Conditional_10_For_1_Template, 5, 3, "div",
|
|
52
|
+
i0.ɵɵrepeaterCreate(0, CompanyOverviewPanel_Conditional_10_For_1_Template, 5, 3, "div", 10, _forTrack0);
|
|
35
53
|
} if (rf & 2) {
|
|
36
|
-
const
|
|
37
|
-
i0.ɵɵrepeater(
|
|
54
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
55
|
+
i0.ɵɵrepeater(ctx_r0.Employees);
|
|
38
56
|
} }
|
|
39
57
|
let CompanyOverviewPanel = class CompanyOverviewPanel extends BaseFormPanel {
|
|
40
58
|
constructor() {
|
|
41
59
|
super(...arguments);
|
|
42
60
|
this.cdr = inject(ChangeDetectorRef);
|
|
43
61
|
this.Employees = [];
|
|
62
|
+
/** Set when the query fails, so the card shows the failure instead of an empty list. */
|
|
63
|
+
this.LoadError = null;
|
|
44
64
|
}
|
|
45
65
|
get Company() {
|
|
46
66
|
return this.Record;
|
|
@@ -54,74 +74,81 @@ let CompanyOverviewPanel = class CompanyOverviewPanel extends BaseFormPanel {
|
|
|
54
74
|
try {
|
|
55
75
|
const rv = new RunView();
|
|
56
76
|
const res = await rv.RunView({
|
|
57
|
-
EntityName: 'Employees',
|
|
77
|
+
EntityName: 'MJ: Employees',
|
|
58
78
|
ExtraFilter: `CompanyID = '${this.Record.ID}'`,
|
|
59
79
|
Fields: ['ID', 'FirstName', 'LastName', 'Title'],
|
|
60
80
|
MaxRows: 20,
|
|
61
81
|
ResultType: 'simple'
|
|
62
82
|
});
|
|
63
|
-
if (res.Success
|
|
64
|
-
this.Employees = res.Results;
|
|
65
|
-
|
|
83
|
+
if (res.Success) {
|
|
84
|
+
this.Employees = res.Results ?? [];
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.showLoadError(res.ErrorMessage);
|
|
66
88
|
}
|
|
67
89
|
}
|
|
68
90
|
catch (e) {
|
|
69
91
|
console.error('Failed to load company employees:', e);
|
|
92
|
+
this.showLoadError(e instanceof Error ? e.message : undefined);
|
|
70
93
|
}
|
|
94
|
+
this.cdr.markForCheck();
|
|
95
|
+
}
|
|
96
|
+
/** Shows a short "could not load" line, with the underlying message when there is one. */
|
|
97
|
+
showLoadError(detail) {
|
|
98
|
+
this.LoadError = detail ? `Could not load employees: ${detail}` : 'Could not load employees.';
|
|
71
99
|
}
|
|
72
100
|
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵCompanyOverviewPanel_BaseFactory; return function CompanyOverviewPanel_Factory(__ngFactoryType__) { return (ɵCompanyOverviewPanel_BaseFactory || (ɵCompanyOverviewPanel_BaseFactory = i0.ɵɵgetInheritedFactory(CompanyOverviewPanel)))(__ngFactoryType__ || CompanyOverviewPanel); }; })(); }
|
|
73
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CompanyOverviewPanel, selectors: [["mj-company-overview-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 34, vars: 4, consts: [[1, "mj-company-overview-grid"], [1, "mj-overview-card"], [1, "mj-card-header"], [1, "mj-card-title"], [1, "fa-solid", "fa-users", 2, "color", "var(--mj-brand-primary, #38bdf8)"], [1, "mj-card-badge"], [1, "mj-card-body"], [2, "font-size", "12px", "color", "var(--mj-text-muted)"], [1, "fa-solid", "fa-building-shield", 2, "color", "#10b981"], [1, "mj-metric-row"], [1, "mj-metric-label"], [1, "mj-metric-val"], [1, "mj-pill", "mj-pill-green"], [1, "mj-pill", "mj-pill-blue"]], template: function CompanyOverviewPanel_Template(rf, ctx) { if (rf & 1) {
|
|
101
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CompanyOverviewPanel, selectors: [["mj-company-overview-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 34, vars: 4, consts: [[1, "mj-company-overview-grid"], [1, "mj-overview-card"], [1, "mj-card-header"], [1, "mj-card-title"], [1, "fa-solid", "fa-users", 2, "color", "var(--mj-brand-primary, #38bdf8)"], [1, "mj-card-badge"], [1, "mj-card-body"], [1, "mj-load-error"], [2, "font-size", "12px", "color", "var(--mj-text-muted)"], [1, "fa-solid", "fa-building-shield", 2, "color", "#10b981"], [1, "mj-metric-row"], [1, "mj-metric-label"], [1, "mj-metric-val"], [1, "mj-pill", "mj-pill-green"], [1, "mj-pill", "mj-pill-blue"]], template: function CompanyOverviewPanel_Template(rf, ctx) { if (rf & 1) {
|
|
74
102
|
i0.ɵɵdomElementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
|
|
75
103
|
i0.ɵɵdomElement(4, "i", 4);
|
|
76
104
|
i0.ɵɵtext(5, " Company Team");
|
|
77
105
|
i0.ɵɵdomElementEnd();
|
|
78
|
-
i0.ɵɵ
|
|
79
|
-
i0.ɵɵ
|
|
80
|
-
i0.ɵɵ
|
|
81
|
-
i0.ɵɵ
|
|
82
|
-
i0.ɵɵconditionalCreate(9, CompanyOverviewPanel_Conditional_9_Template, 2, 0, "span", 7)(10, CompanyOverviewPanel_Conditional_10_Template, 2, 0);
|
|
106
|
+
i0.ɵɵconditionalCreate(6, CompanyOverviewPanel_Conditional_6_Template, 2, 1, "span", 5);
|
|
107
|
+
i0.ɵɵdomElementEnd();
|
|
108
|
+
i0.ɵɵdomElementStart(7, "div", 6);
|
|
109
|
+
i0.ɵɵconditionalCreate(8, CompanyOverviewPanel_Conditional_8_Template, 2, 1, "span", 7)(9, CompanyOverviewPanel_Conditional_9_Template, 2, 0, "span", 8)(10, CompanyOverviewPanel_Conditional_10_Template, 2, 0);
|
|
83
110
|
i0.ɵɵdomElementEnd()();
|
|
84
111
|
i0.ɵɵdomElementStart(11, "div", 1)(12, "div", 2)(13, "div", 3);
|
|
85
|
-
i0.ɵɵdomElement(14, "i",
|
|
112
|
+
i0.ɵɵdomElement(14, "i", 9);
|
|
86
113
|
i0.ɵɵtext(15, " Company Governance");
|
|
87
114
|
i0.ɵɵdomElementEnd();
|
|
88
115
|
i0.ɵɵdomElementStart(16, "span", 5);
|
|
89
116
|
i0.ɵɵtext(17, "Profile");
|
|
90
117
|
i0.ɵɵdomElementEnd()();
|
|
91
|
-
i0.ɵɵdomElementStart(18, "div", 6)(19, "div",
|
|
118
|
+
i0.ɵɵdomElementStart(18, "div", 6)(19, "div", 10)(20, "span", 11);
|
|
92
119
|
i0.ɵɵtext(21, "Company Name");
|
|
93
120
|
i0.ɵɵdomElementEnd();
|
|
94
|
-
i0.ɵɵdomElementStart(22, "span",
|
|
121
|
+
i0.ɵɵdomElementStart(22, "span", 12);
|
|
95
122
|
i0.ɵɵtext(23);
|
|
96
123
|
i0.ɵɵdomElementEnd()();
|
|
97
|
-
i0.ɵɵdomElementStart(24, "div",
|
|
124
|
+
i0.ɵɵdomElementStart(24, "div", 10)(25, "span", 11);
|
|
98
125
|
i0.ɵɵtext(26, "Website");
|
|
99
126
|
i0.ɵɵdomElementEnd();
|
|
100
|
-
i0.ɵɵdomElementStart(27, "span",
|
|
127
|
+
i0.ɵɵdomElementStart(27, "span", 12);
|
|
101
128
|
i0.ɵɵtext(28);
|
|
102
129
|
i0.ɵɵdomElementEnd()();
|
|
103
|
-
i0.ɵɵdomElementStart(29, "div",
|
|
130
|
+
i0.ɵɵdomElementStart(29, "div", 10)(30, "span", 11);
|
|
104
131
|
i0.ɵɵtext(31, "Record Type");
|
|
105
132
|
i0.ɵɵdomElementEnd();
|
|
106
|
-
i0.ɵɵdomElementStart(32, "span",
|
|
133
|
+
i0.ɵɵdomElementStart(32, "span", 13);
|
|
107
134
|
i0.ɵɵtext(33, "Corporate Entity");
|
|
108
135
|
i0.ɵɵdomElementEnd()()()()();
|
|
109
136
|
} if (rf & 2) {
|
|
110
|
-
i0.ɵɵadvance(
|
|
111
|
-
i0.ɵɵ
|
|
137
|
+
i0.ɵɵadvance(6);
|
|
138
|
+
i0.ɵɵconditional(!ctx.LoadError ? 6 : -1);
|
|
112
139
|
i0.ɵɵadvance(2);
|
|
113
|
-
i0.ɵɵconditional(ctx.Employees.length === 0 ? 9 : 10);
|
|
114
|
-
i0.ɵɵadvance(
|
|
140
|
+
i0.ɵɵconditional(ctx.LoadError ? 8 : ctx.Employees.length === 0 ? 9 : 10);
|
|
141
|
+
i0.ɵɵadvance(15);
|
|
115
142
|
i0.ɵɵtextInterpolate(ctx.Company == null ? null : ctx.Company.Name);
|
|
116
143
|
i0.ɵɵadvance(5);
|
|
117
144
|
i0.ɵɵtextInterpolate((ctx.Company == null ? null : ctx.Company.Website) || "None Listed");
|
|
118
|
-
} }, dependencies: [CommonModule], styles: ["[_nghost-%COMP%] { display: block; width: 100%; margin-bottom: 20px; }\n .mj-company-overview-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header[_ngcontent-%COMP%] {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title[_ngcontent-%COMP%] {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body[_ngcontent-%COMP%] {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label[_ngcontent-%COMP%] { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val[_ngcontent-%COMP%] { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-pill[_ngcontent-%COMP%] { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green[_ngcontent-%COMP%] { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-blue[_ngcontent-%COMP%] { background: rgba(56, 189, 248, 0.15); color: #38bdf8; }"], changeDetection: 0 }); }
|
|
145
|
+
} }, dependencies: [CommonModule], styles: ["[_nghost-%COMP%] { display: block; width: 100%; margin-bottom: 20px; }\n .mj-company-overview-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header[_ngcontent-%COMP%] {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title[_ngcontent-%COMP%] {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body[_ngcontent-%COMP%] {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label[_ngcontent-%COMP%] { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val[_ngcontent-%COMP%] { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-load-error[_ngcontent-%COMP%] { font-size: 12px; color: var(--mj-status-error); }\n .mj-pill[_ngcontent-%COMP%] { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green[_ngcontent-%COMP%] { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-blue[_ngcontent-%COMP%] { background: rgba(56, 189, 248, 0.15); color: #38bdf8; }"], changeDetection: 0 }); }
|
|
119
146
|
};
|
|
120
147
|
CompanyOverviewPanel = __decorate([
|
|
121
148
|
RegisterClassEx(BaseFormPanel, {
|
|
122
|
-
key: 'form-panel:Companies:overview',
|
|
149
|
+
key: 'form-panel:MJ: Companies:overview',
|
|
123
150
|
metadata: {
|
|
124
|
-
entity: 'Companies',
|
|
151
|
+
entity: 'MJ: Companies',
|
|
125
152
|
slot: 'before-fields',
|
|
126
153
|
sortKey: 10,
|
|
127
154
|
},
|
|
@@ -136,10 +163,14 @@ export { CompanyOverviewPanel };
|
|
|
136
163
|
<div class="mj-overview-card">
|
|
137
164
|
<div class="mj-card-header">
|
|
138
165
|
<div class="mj-card-title"><i class="fa-solid fa-users" style="color: var(--mj-brand-primary, #38bdf8);"></i> Company Team</div>
|
|
139
|
-
|
|
166
|
+
@if (!LoadError) {
|
|
167
|
+
<span class="mj-card-badge">{{ Employees.length }} Members</span>
|
|
168
|
+
}
|
|
140
169
|
</div>
|
|
141
170
|
<div class="mj-card-body">
|
|
142
|
-
@if (
|
|
171
|
+
@if (LoadError) {
|
|
172
|
+
<span class="mj-load-error">{{ LoadError }}</span>
|
|
173
|
+
} @else if (Employees.length === 0) {
|
|
143
174
|
<span style="font-size: 12px; color: var(--mj-text-muted);">No employees assigned directly to this company.</span>
|
|
144
175
|
} @else {
|
|
145
176
|
@for (emp of Employees; track emp.ID) {
|
|
@@ -174,7 +205,7 @@ export { CompanyOverviewPanel };
|
|
|
174
205
|
</div>
|
|
175
206
|
</div>
|
|
176
207
|
</div>
|
|
177
|
-
`, styles: ["\n :host { display: block; width: 100%; margin-bottom: 20px; }\n .mj-company-overview-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-pill { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-blue { background: rgba(56, 189, 248, 0.15); color: #38bdf8; }\n "] }]
|
|
208
|
+
`, styles: ["\n :host { display: block; width: 100%; margin-bottom: 20px; }\n .mj-company-overview-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-load-error { font-size: 12px; color: var(--mj-status-error); }\n .mj-pill { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-blue { background: rgba(56, 189, 248, 0.15); color: #38bdf8; }\n "] }]
|
|
178
209
|
}], null, null); })();
|
|
179
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompanyOverviewPanel, { className: "CompanyOverviewPanel", filePath: "src/lib/custom/Companies/company-overview.panel.ts", lineNumber:
|
|
210
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompanyOverviewPanel, { className: "CompanyOverviewPanel", filePath: "src/lib/custom/Companies/company-overview.panel.ts", lineNumber: 136 }); })();
|
|
180
211
|
//# sourceMappingURL=company-overview.panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"company-overview.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/Companies/company-overview.panel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ChangeDetectionStrategy, OnInit, inject, ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RunView } from '@memberjunction/core';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel } from '@memberjunction/ng-base-forms';\nimport { MJCompanyEntity } from '@memberjunction/core-entities';\n\ninterface EmployeeRow {\n ID: string;\n FirstName: string;\n LastName: string;\n Title: string;\n}\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:Companies:overview',\n metadata: {\n entity: 'Companies',\n slot: 'before-fields',\n sortKey: 10,\n },\n})\n@Component({\n selector: 'mj-company-overview-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"mj-company-overview-grid\">\n <!-- Card 1: Team & Staff -->\n <div class=\"mj-overview-card\">\n <div class=\"mj-card-header\">\n <div class=\"mj-card-title\"><i class=\"fa-solid fa-users\" style=\"color: var(--mj-brand-primary, #38bdf8);\"></i> Company Team</div>\n <span class=\"mj-card-badge\">{{ Employees.length }} Members</span>\n </div>\n <div class=\"mj-card-body\">\n @if (Employees.length === 0) {\n <span style=\"font-size: 12px; color: var(--mj-text-muted);\">No employees assigned directly to this company.</span>\n } @else {\n @for (emp of Employees; track emp.ID) {\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">{{ emp.FirstName }} {{ emp.LastName }}</span>\n <span class=\"mj-pill mj-pill-blue\">{{ emp.Title || 'Staff' }}</span>\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Card 2: Company Setup & Profile -->\n <div class=\"mj-overview-card\">\n <div class=\"mj-card-header\">\n <div class=\"mj-card-title\"><i class=\"fa-solid fa-building-shield\" style=\"color: #10b981;\"></i> Company Governance</div>\n <span class=\"mj-card-badge\">Profile</span>\n </div>\n <div class=\"mj-card-body\">\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">Company Name</span>\n <span class=\"mj-metric-val\">{{ Company?.Name }}</span>\n </div>\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">Website</span>\n <span class=\"mj-metric-val\">{{ Company?.Website || 'None Listed' }}</span>\n </div>\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">Record Type</span>\n <span class=\"mj-pill mj-pill-green\">Corporate Entity</span>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: [`\n :host { display: block; width: 100%; margin-bottom: 20px; }\n .mj-company-overview-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-pill { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-blue { background: rgba(56, 189, 248, 0.15); color: #38bdf8; }\n `]\n})\nexport class CompanyOverviewPanel extends BaseFormPanel<MJCompanyEntity> implements OnInit {\n private cdr = inject(ChangeDetectorRef);\n public Employees: EmployeeRow[] = [];\n\n public get Company(): MJCompanyEntity | null {\n return this.Record;\n }\n\n public ngOnInit(): void {\n this.loadEmployees();\n }\n\n private async loadEmployees(): Promise<void> {\n if (!this.Record?.ID) return;\n try {\n const rv = new RunView();\n const res = await rv.RunView<EmployeeRow>({\n EntityName: 'Employees',\n ExtraFilter: `CompanyID = '${this.Record.ID}'`,\n Fields: ['ID', 'FirstName', 'LastName', 'Title'],\n MaxRows: 20,\n ResultType: 'simple'\n });\n if (res.Success && res.Results) {\n this.Employees = res.Results;\n this.cdr.markForCheck();\n }\n } catch (e) {\n console.error('Failed to load company employees:', e);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"company-overview.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/Companies/company-overview.panel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ChangeDetectionStrategy, OnInit, inject, ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RunView } from '@memberjunction/core';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel } from '@memberjunction/ng-base-forms';\nimport { MJCompanyEntity } from '@memberjunction/core-entities';\n\ninterface EmployeeRow {\n ID: string;\n FirstName: string;\n LastName: string;\n Title: string;\n}\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJ: Companies:overview',\n metadata: {\n entity: 'MJ: Companies',\n slot: 'before-fields',\n sortKey: 10,\n },\n})\n@Component({\n selector: 'mj-company-overview-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"mj-company-overview-grid\">\n <!-- Card 1: Team & Staff -->\n <div class=\"mj-overview-card\">\n <div class=\"mj-card-header\">\n <div class=\"mj-card-title\"><i class=\"fa-solid fa-users\" style=\"color: var(--mj-brand-primary, #38bdf8);\"></i> Company Team</div>\n @if (!LoadError) {\n <span class=\"mj-card-badge\">{{ Employees.length }} Members</span>\n }\n </div>\n <div class=\"mj-card-body\">\n @if (LoadError) {\n <span class=\"mj-load-error\">{{ LoadError }}</span>\n } @else if (Employees.length === 0) {\n <span style=\"font-size: 12px; color: var(--mj-text-muted);\">No employees assigned directly to this company.</span>\n } @else {\n @for (emp of Employees; track emp.ID) {\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">{{ emp.FirstName }} {{ emp.LastName }}</span>\n <span class=\"mj-pill mj-pill-blue\">{{ emp.Title || 'Staff' }}</span>\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Card 2: Company Setup & Profile -->\n <div class=\"mj-overview-card\">\n <div class=\"mj-card-header\">\n <div class=\"mj-card-title\"><i class=\"fa-solid fa-building-shield\" style=\"color: #10b981;\"></i> Company Governance</div>\n <span class=\"mj-card-badge\">Profile</span>\n </div>\n <div class=\"mj-card-body\">\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">Company Name</span>\n <span class=\"mj-metric-val\">{{ Company?.Name }}</span>\n </div>\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">Website</span>\n <span class=\"mj-metric-val\">{{ Company?.Website || 'None Listed' }}</span>\n </div>\n <div class=\"mj-metric-row\">\n <span class=\"mj-metric-label\">Record Type</span>\n <span class=\"mj-pill mj-pill-green\">Corporate Entity</span>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: [`\n :host { display: block; width: 100%; margin-bottom: 20px; }\n .mj-company-overview-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 16px;\n }\n .mj-overview-card {\n background: var(--mj-bg-surface-card, #141f36);\n border: 1px solid var(--mj-border-default, #223254);\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .mj-card-header {\n padding: 10px 14px;\n background: var(--mj-bg-surface, #111a2e);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .mj-card-title {\n font-size: 12.5px;\n font-weight: 700;\n color: var(--mj-text-primary, #f8fafc);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .mj-card-badge {\n font-size: 11px;\n padding: 2px 7px;\n border-radius: 9999px;\n background: var(--mj-bg-surface-elevated, #1a2744);\n color: var(--mj-text-secondary, #94a3b8);\n border: 1px solid var(--mj-border-default, #223254);\n }\n .mj-card-body {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .mj-metric-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n }\n .mj-metric-label { color: var(--mj-text-secondary, #94a3b8); }\n .mj-metric-val { font-weight: 600; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n .mj-load-error { font-size: 12px; color: var(--mj-status-error); }\n .mj-pill { font-size: 10.5px; font-weight: 700; padding: 2px 6px; border-radius: 4px; }\n .mj-pill-green { background: rgba(16, 185, 129, 0.15); color: #10b981; }\n .mj-pill-blue { background: rgba(56, 189, 248, 0.15); color: #38bdf8; }\n `]\n})\nexport class CompanyOverviewPanel extends BaseFormPanel<MJCompanyEntity> implements OnInit {\n private cdr = inject(ChangeDetectorRef);\n public Employees: EmployeeRow[] = [];\n /** Set when the query fails, so the card shows the failure instead of an empty list. */\n public LoadError: string | null = null;\n\n public get Company(): MJCompanyEntity | null {\n return this.Record;\n }\n\n public ngOnInit(): void {\n this.loadEmployees();\n }\n\n private async loadEmployees(): Promise<void> {\n if (!this.Record?.ID) return;\n try {\n const rv = new RunView();\n const res = await rv.RunView<EmployeeRow>({\n EntityName: 'MJ: Employees',\n ExtraFilter: `CompanyID = '${this.Record.ID}'`,\n Fields: ['ID', 'FirstName', 'LastName', 'Title'],\n MaxRows: 20,\n ResultType: 'simple'\n });\n if (res.Success) {\n this.Employees = res.Results ?? [];\n } else {\n this.showLoadError(res.ErrorMessage);\n }\n } catch (e) {\n console.error('Failed to load company employees:', e);\n this.showLoadError(e instanceof Error ? e.message : undefined);\n }\n this.cdr.markForCheck();\n }\n\n /** Shows a short \"could not load\" line, with the underlying message when there is one. */\n private showLoadError(detail: string | undefined): void {\n this.LoadError = detail ? `Could not load employees: ${detail}` : 'Could not load employees.';\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-header.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Conversations/conversation-header.panel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAkB,MAAM,+BAA+B,CAAC;;AAIrF,
|
|
1
|
+
{"version":3,"file":"conversation-header.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Conversations/conversation-header.panel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAkB,MAAM,+BAA+B,CAAC;;AAIrF,qBAuFa,uBAAwB,SAAQ,aAAa,CAAC,oBAAoB,CAAC;IACrE,WAAW,UAAS;IAEpB,QAAQ,IAAI,IAAI;IAKvB,IAAW,YAAY,IAAI,oBAAoB,GAAG,IAAI,CAErD;IAEM,eAAe,IAAI,IAAI;yCAZrB,uBAAuB;2CAAvB,uBAAuB;CAgBnC"}
|
|
@@ -95,11 +95,15 @@ let ConversationHeaderPanel = class ConversationHeaderPanel extends BaseFormPane
|
|
|
95
95
|
};
|
|
96
96
|
ConversationHeaderPanel = __decorate([
|
|
97
97
|
RegisterClassEx(BaseFormPanel, {
|
|
98
|
-
key: 'form-panel:Conversations:header',
|
|
98
|
+
key: 'form-panel:MJ: Conversations:header',
|
|
99
99
|
metadata: {
|
|
100
|
-
entity: 'Conversations',
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
entity: 'MJ: Conversations',
|
|
101
|
+
// A hero is a bare strip in before-fields. Its sortKey is above the overview's
|
|
102
|
+
// (higher draws first), so it draws above the overview cards.
|
|
103
|
+
slot: 'before-fields',
|
|
104
|
+
presentation: 'bare',
|
|
105
|
+
contributionKey: 'conversations:header',
|
|
106
|
+
sortKey: 20,
|
|
103
107
|
},
|
|
104
108
|
})
|
|
105
109
|
], ConversationHeaderPanel);
|
|
@@ -146,5 +150,5 @@ export { ConversationHeaderPanel };
|
|
|
146
150
|
}
|
|
147
151
|
`, styles: ["\n :host { display: block; width: 100%; }\n .mj-entity-hero-header {\n background: linear-gradient(180deg, var(--mj-bg-surface, #111a2e) 0%, var(--mj-bg-surface-card, #141f36) 100%);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n padding: 16px 24px;\n }\n .mj-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }\n .mj-hero-identity { display: flex; align-items: center; gap: 14px; }\n .mj-hero-avatar {\n width: 44px; height: 44px; border-radius: 10px;\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: #fff; flex-shrink: 0;\n }\n .mj-hero-title { font-size: 18px; font-weight: 800; color: var(--mj-text-primary, #f8fafc); }\n .mj-hero-subline { font-size: 12.5px; color: var(--mj-text-secondary, #94a3b8); margin-top: 2px; display: flex; gap: 8px; align-items: center; }\n .mj-hero-toggle-btn {\n background: none; border: 1px solid var(--mj-border-default, #223254);\n color: var(--mj-text-muted, #64748b); border-radius: 6px;\n padding: 6px 10px; cursor: pointer;\n }\n .mj-hero-metrics-row {\n display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px; margin-top: 14px; padding-top: 12px;\n border-top: 1px solid rgba(255, 255, 255, 0.05);\n }\n .mj-hero-metric { display: flex; flex-direction: column; gap: 2px; }\n .mj-hero-metric-label { font-size: 10.5px; font-weight: 700; color: var(--mj-text-muted, #64748b); text-transform: uppercase; }\n .mj-hero-metric-val { font-size: 14px; font-weight: 700; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n "] }]
|
|
148
152
|
}], null, null); })();
|
|
149
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationHeaderPanel, { className: "ConversationHeaderPanel", filePath: "src/lib/custom/Conversations/conversation-header.panel.ts", lineNumber:
|
|
153
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationHeaderPanel, { className: "ConversationHeaderPanel", filePath: "src/lib/custom/Conversations/conversation-header.panel.ts", lineNumber: 96 }); })();
|
|
150
154
|
//# sourceMappingURL=conversation-header.panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-header.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/Conversations/conversation-header.panel.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAwB,cAAc,EAAE,MAAM,+BAA+B,CAAC;;;;
|
|
1
|
+
{"version":3,"file":"conversation-header.panel.js","sourceRoot":"","sources":["../../../../src/lib/custom/Conversations/conversation-header.panel.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAwB,cAAc,EAAE,MAAM,+BAA+B,CAAC;;;;IAgDzD,AADJ,AADJ,kCAAiC,cACD,eACW;IAAA,+BAAe;IAAA,oBAAO;IACzD,mCAAiC;IAAA,YAAsC;IAC3E,AAD2E,oBAAO,EAC5E;IAEF,AADJ,kCAA4B,eACW;IAAA,sBAAM;IAAA,oBAAO;IAChD,mCAAyD;IAAA,+BAAc;IAE/E,AADI,AAD2E,oBAAO,EAC5E,EACJ;;;IANmC,eAAsC;IAAtC,oGAAsC;;;;IAvB3E,AADJ,AADJ,AADJ,iCAAmC,aACN,aACS,aACiE;IACvF,0BAAoC;IACxC,oBAAM;IAEF,AADJ,8BAAK,YACyB;IAAA,YAA4C;IAAA,oBAAK;IAEvE,AADJ,iCAA6B,WACnB;IAAA,aAA+C;IAAA,oBAAO;IAC5D,gCAAM;IAAA,uBAAC;IAAA,oBAAO;IACd,gCAAM;IAAA,aAAqD;;IAGvE,AADI,AADI,AAD+D,oBAAO,EAChE,EACJ,EACJ;IAEF,AADJ,kCAA6B,iBACgH;IAAxF,+LAAS,wBAAiB,KAAC;IACxE,2BAAmG;IAG/G,AADI,AADI,oBAAS,EACP,EACJ;IAEN,2GAAoB;IAYxB,oBAAM;;;IA3BoC,eAA4C;IAA5C,mEAA4C;IAE5D,eAA+C;IAA/C,2EAA+C;IAE/C,eAAqD;IAArD,kGAAqD;IAKU,eAA2D;IAA3D,mFAA2D;IAChH,cAAoC;IAAC,AAArC,oDAAoC,uCAAsC;IAK1G,cAWC;IAXD,+CAWC;;AAtDjB,MAAM,WAAW,GAAG,uCAAuC,CAAC;AAyFrD,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,aAAmC;IAAzE;;QACI,gBAAW,GAAG,KAAK,CAAC;KAe9B;IAbU,QAAQ;QACX,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,GAAG;YAAE,IAAI,CAAC,WAAW,GAAG,GAAG,KAAK,MAAM,CAAC;IAC/C,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,eAAe;QAClB,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACrC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACvF,CAAC;gRAfQ,uBAAuB,yBAAvB,uBAAuB;oEAAvB,uBAAuB;YArE5B,2FAAoB;;YAApB,2CAoCC;4BAvCK,YAAY;;AAwEb,uBAAuB;IAvFnC,eAAe,CAAC,aAAa,EAAE;QAC5B,GAAG,EAAE,qCAAqC;QAC1C,QAAQ,EAAE;YACN,MAAM,EAAE,mBAAmB;YAC3B,+EAA+E;YAC/E,8DAA8D;YAC9D,IAAI,EAAE,eAAe;YACrB,YAAY,EAAE,MAAM;YACpB,eAAe,EAAE,sBAAsB;YACvC,OAAO,EAAE,EAAE;SACd;KACJ,CAAC;GA4EW,uBAAuB,CAgBnC;;iFAhBY,uBAAuB;cA3EnC,SAAS;2BACI,8BAA8B,cAC5B,IAAI,WACP,CAAC,YAAY,CAAC,mBACN,uBAAuB,CAAC,MAAM,YACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsCT;;kFAgCQ,uBAAuB","sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel } from '@memberjunction/ng-base-forms';\nimport { MJConversationEntity, UserInfoEngine } from '@memberjunction/core-entities';\n\nconst SETTING_KEY = 'mj.form.conversations.headerCollapsed';\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJ: Conversations:header',\n metadata: {\n entity: 'MJ: Conversations',\n // A hero is a bare strip in before-fields. Its sortKey is above the overview's\n // (higher draws first), so it draws above the overview cards.\n slot: 'before-fields',\n presentation: 'bare',\n contributionKey: 'conversations:header',\n sortKey: 20,\n },\n})\n@Component({\n selector: 'mj-conversation-header-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (Conversation) {\n <div class=\"mj-entity-hero-header\">\n <div class=\"mj-hero-top\">\n <div class=\"mj-hero-identity\">\n <div class=\"mj-hero-avatar\" style=\"background: linear-gradient(135deg, #38bdf8, #0284c7);\">\n <i class=\"fa-solid fa-comments\"></i>\n </div>\n <div>\n <h1 class=\"mj-hero-title\">{{ Conversation.Name || 'AI Conversation' }}</h1>\n <div class=\"mj-hero-subline\">\n <span>User: {{ Conversation.User || 'User Session' }}</span>\n <span>•</span>\n <span>Created: {{ Conversation.CreatedAt | date:'medium' }}</span>\n </div>\n </div>\n </div>\n <div class=\"mj-hero-actions\">\n <button type=\"button\" class=\"mj-hero-toggle-btn\" (click)=\"ToggleCollapsed()\" [title]=\"IsCollapsed ? 'Expand Header' : 'Collapse Header'\">\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"!IsCollapsed\" [class.fa-chevron-down]=\"IsCollapsed\"></i>\n </button>\n </div>\n </div>\n\n @if (!IsCollapsed) {\n <div class=\"mj-hero-metrics-row\">\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">Conversation ID</span>\n <span class=\"mj-hero-metric-val\">{{ Conversation.ID?.substring(0, 8) }}</span>\n </div>\n <div class=\"mj-hero-metric\">\n <span class=\"mj-hero-metric-label\">Status</span>\n <span class=\"mj-hero-metric-val\" style=\"color: #38bdf8;\">Active Session</span>\n </div>\n </div>\n }\n </div>\n }\n `,\n styles: [`\n :host { display: block; width: 100%; }\n .mj-entity-hero-header {\n background: linear-gradient(180deg, var(--mj-bg-surface, #111a2e) 0%, var(--mj-bg-surface-card, #141f36) 100%);\n border-bottom: 1px solid var(--mj-border-default, #223254);\n padding: 16px 24px;\n }\n .mj-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }\n .mj-hero-identity { display: flex; align-items: center; gap: 14px; }\n .mj-hero-avatar {\n width: 44px; height: 44px; border-radius: 10px;\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: #fff; flex-shrink: 0;\n }\n .mj-hero-title { font-size: 18px; font-weight: 800; color: var(--mj-text-primary, #f8fafc); }\n .mj-hero-subline { font-size: 12.5px; color: var(--mj-text-secondary, #94a3b8); margin-top: 2px; display: flex; gap: 8px; align-items: center; }\n .mj-hero-toggle-btn {\n background: none; border: 1px solid var(--mj-border-default, #223254);\n color: var(--mj-text-muted, #64748b); border-radius: 6px;\n padding: 6px 10px; cursor: pointer;\n }\n .mj-hero-metrics-row {\n display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px; margin-top: 14px; padding-top: 12px;\n border-top: 1px solid rgba(255, 255, 255, 0.05);\n }\n .mj-hero-metric { display: flex; flex-direction: column; gap: 2px; }\n .mj-hero-metric-label { font-size: 10.5px; font-weight: 700; color: var(--mj-text-muted, #64748b); text-transform: uppercase; }\n .mj-hero-metric-val { font-size: 14px; font-weight: 700; color: var(--mj-text-primary, #f8fafc); font-family: monospace; }\n `]\n})\nexport class ConversationHeaderPanel extends BaseFormPanel<MJConversationEntity> {\n public IsCollapsed = false;\n\n public ngOnInit(): void {\n const raw = UserInfoEngine.Instance.GetSetting(SETTING_KEY);\n if (raw) this.IsCollapsed = raw === 'true';\n }\n\n public get Conversation(): MJConversationEntity | null {\n return this.Record;\n }\n\n public ToggleCollapsed(): void {\n this.IsCollapsed = !this.IsCollapsed;\n UserInfoEngine.Instance.SetSettingDebounced(SETTING_KEY, String(this.IsCollapsed));\n }\n}\n"]}
|
|
@@ -1,21 +1,42 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
2
|
import { BaseFormPanel } from '@memberjunction/ng-base-forms';
|
|
3
|
-
import { MJConversationEntity } from '@memberjunction/core-entities';
|
|
3
|
+
import { MJConversationDetailEntity, MJConversationEntity } from '@memberjunction/core-entities';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
interface ConversationDetailRow {
|
|
6
6
|
ID: string;
|
|
7
|
-
Role:
|
|
7
|
+
Role: MJConversationDetailEntity['Role'];
|
|
8
8
|
Message: string;
|
|
9
9
|
CreatedAt: string;
|
|
10
10
|
}
|
|
11
11
|
export declare class ConversationOverviewPanel extends BaseFormPanel<MJConversationEntity> implements OnInit {
|
|
12
12
|
private cdr;
|
|
13
|
+
/** The newest messages in Main, newest first. */
|
|
13
14
|
Messages: ConversationDetailRow[];
|
|
15
|
+
/** Messages in Main. */
|
|
16
|
+
TotalMessageCount: number;
|
|
17
|
+
/** User messages in Main. */
|
|
18
|
+
UserMessageCount: number;
|
|
19
|
+
/** AI messages in Main. */
|
|
20
|
+
AgentMessageCount: number;
|
|
21
|
+
/** Forks of the conversation. */
|
|
22
|
+
ForkCount: number;
|
|
23
|
+
/** Set when a read fails, so the cards show the failure instead of zero messages. */
|
|
24
|
+
LoadError: string | null;
|
|
14
25
|
ngOnInit(): void;
|
|
15
|
-
|
|
16
|
-
|
|
26
|
+
/** A turn the user sent. `Role` is stored as 'User', 'AI' or 'Error'. */
|
|
27
|
+
protected IsUserTurn(detail: ConversationDetailRow): boolean;
|
|
28
|
+
/** A turn an agent sent. An 'Error' turn is neither a user turn nor an agent turn. */
|
|
29
|
+
protected IsAgentTurn(detail: ConversationDetailRow): boolean;
|
|
17
30
|
get RecentMessages(): ConversationDetailRow[];
|
|
31
|
+
/** The host form's provider, or the default provider when the panel has no host form. */
|
|
32
|
+
private get providerToUse();
|
|
33
|
+
/**
|
|
34
|
+
* Loads the counts and newest messages in Main, and the conversation's fork count, in one
|
|
35
|
+
* batch. When a detail read fails, the cards show the failure.
|
|
36
|
+
*/
|
|
18
37
|
private loadConversationMessages;
|
|
38
|
+
/** Shows a short "could not load" line, with the underlying message when there is one. */
|
|
39
|
+
private showLoadError;
|
|
19
40
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConversationOverviewPanel, never>;
|
|
20
41
|
static ɵcmp: i0.ɵɵComponentDeclaration<ConversationOverviewPanel, "mj-conversation-overview-panel", never, {}, {}, never, never, true, never>;
|
|
21
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-overview.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Conversations/conversation-overview.panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,MAAM,EAA6B,MAAM,eAAe,CAAC;AAItG,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;
|
|
1
|
+
{"version":3,"file":"conversation-overview.panel.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Conversations/conversation-overview.panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,MAAM,EAA6B,MAAM,eAAe,CAAC;AAItG,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAsB,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAErH,UAAU,qBAAqB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAKD,qBAqIa,yBAA0B,SAAQ,aAAa,CAAC,oBAAoB,CAAE,YAAW,MAAM;IAChG,OAAO,CAAC,GAAG,CAA6B;IACxC,iDAAiD;IAC1C,QAAQ,EAAE,qBAAqB,EAAE,CAAM;IAC9C,wBAAwB;IACjB,iBAAiB,SAAK;IAC7B,6BAA6B;IACtB,gBAAgB,SAAK;IAC5B,2BAA2B;IACpB,iBAAiB,SAAK;IAC7B,iCAAiC;IAC1B,SAAS,SAAK;IACrB,qFAAqF;IAC9E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC,QAAQ,IAAI,IAAI;IAIvB,yEAAyE;IACzE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO;IAI5D,sFAAsF;IACtF,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO;IAI7D,IAAW,cAAc,IAAI,qBAAqB,EAAE,CAEnD;IAED,yFAAyF;IACzF,OAAO,KAAK,aAAa,GAExB;IAED;;;OAGG;YACW,wBAAwB;IAuDtC,0FAA0F;IAC1F,OAAO,CAAC,aAAa;yCAlGZ,yBAAyB;2CAAzB,yBAAyB;CAqGrC"}
|