@memberjunction/ng-core-entity-forms 6.2.0-edge.3 → 6.2.0-edge.5
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/AIAgents/ai-agent-form.component.d.ts +12 -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 +43 -26
- 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 +7 -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 +191 -178
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/prompt-run-data-capture-note.component.d.ts +48 -0
- package/dist/lib/custom/AIPromptRuns/prompt-run-data-capture-note.component.d.ts.map +1 -0
- package/dist/lib/custom/AIPromptRuns/prompt-run-data-capture-note.component.js +195 -0
- package/dist/lib/custom/AIPromptRuns/prompt-run-data-capture-note.component.js.map +1 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +324 -322
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +16 -3
- package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts.map +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.js +103 -43
- package/dist/lib/custom/Conversations/conversation-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 +18 -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/Lists/list-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +3 -2
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +2 -2
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js +6 -3
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +3 -3
- package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts.map +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js +5 -7
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +2 -2
- 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-data.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +8 -8
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +37 -5
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +155 -79
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +8 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +59 -8
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +34 -9
- 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 +164 -43
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/run-tree-timeline-projection.js +3 -1
- package/dist/lib/custom/ai-agent-run/run-tree-timeline-projection.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +82 -79
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +16 -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 +65 -47
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +115 -117
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js +64 -24
- package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js +74 -52
- package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentSessionRecordingShard/mjaiagentsessionrecordingshard.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIAgentSessionRecordingShard/mjaiagentsessionrecordingshard.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentSessionRecordingShard/mjaiagentsessionrecordingshard.form.component.js +86 -0
- package/dist/lib/generated/Entities/MJAIAgentSessionRecordingShard/mjaiagentsessionrecordingshard.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentUserPolicy/mjaiagentuserpolicy.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIAgentUserPolicy/mjaiagentuserpolicy.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentUserPolicy/mjaiagentuserpolicy.form.component.js +132 -0
- package/dist/lib/generated/Entities/MJAIAgentUserPolicy/mjaiagentuserpolicy.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIBridgeAgentIdentity/mjaibridgeagentidentity.form.component.js +12 -10
- package/dist/lib/generated/Entities/MJAIBridgeAgentIdentity/mjaibridgeagentidentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +86 -32
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPersona/mjaipersona.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPersona/mjaipersona.form.component.js +25 -7
- package/dist/lib/generated/Entities/MJAIPersona/mjaipersona.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +180 -160
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js +16 -14
- package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js +23 -21
- package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js +21 -19
- package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.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 +32 -14
- package/dist/lib/generated/Entities/MJConversation/mjconversation.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 +59 -67
- 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 +35 -17
- package/dist/lib/generated/Entities/MJCredential/mjcredential.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 +112 -94
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFeaturePipelineVersion/mjfeaturepipelineversion.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineVersion/mjfeaturepipelineversion.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineVersion/mjfeaturepipelineversion.form.component.js +130 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineVersion/mjfeaturepipelineversion.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js +26 -14
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.js +23 -19
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js +29 -27
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.js +17 -15
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js +27 -9
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.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/MJTest/mjtest.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +24 -6
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js +29 -11
- package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTheme/mjtheme.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTheme/mjtheme.form.component.js +13 -3
- package/dist/lib/generated/Entities/MJTheme/mjtheme.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 +788 -714
- 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/MJUserRoutine/mjuserroutine.form.component.js +31 -25
- package/dist/lib/generated/Entities/MJUserRoutine/mjuserroutine.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +286 -281
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +15 -0
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/panels/feature-values/feature-values.logic.d.ts +55 -0
- package/dist/lib/panels/feature-values/feature-values.logic.d.ts.map +1 -0
- package/dist/lib/panels/feature-values/feature-values.logic.js +88 -0
- package/dist/lib/panels/feature-values/feature-values.logic.js.map +1 -0
- package/dist/lib/panels/feature-values/feature-values.panel.d.ts +39 -0
- package/dist/lib/panels/feature-values/feature-values.panel.d.ts.map +1 -0
- package/dist/lib/panels/feature-values/feature-values.panel.js +303 -0
- package/dist/lib/panels/feature-values/feature-values.panel.js.map +1 -0
- package/dist/lib/shared/components/template-editor.component.js +2 -2
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +48 -47
|
@@ -13,13 +13,23 @@ import { BaseFormComponent } from '@memberjunction/ng-base-forms';
|
|
|
13
13
|
import { GraphQLDataProvider, gql } from '@memberjunction/graphql-dataprovider';
|
|
14
14
|
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
15
15
|
import { MJFileFormComponent } from '../../generated/Entities/MJFile/mjfile.form.component';
|
|
16
|
+
import { ClassifyFileMediaType, DescribeFileSize, MediaLoadsByElement } from './file-form.logic';
|
|
16
17
|
import { z } from 'zod';
|
|
17
18
|
import * as i0 from "@angular/core";
|
|
18
|
-
import * as i1 from "@memberjunction/ng-
|
|
19
|
-
import * as i2 from "@memberjunction/ng-
|
|
20
|
-
import * as i3 from "@memberjunction/ng-
|
|
21
|
-
import * as i4 from "@
|
|
22
|
-
|
|
19
|
+
import * as i1 from "@memberjunction/ng-artifacts";
|
|
20
|
+
import * as i2 from "@memberjunction/ng-ui-components";
|
|
21
|
+
import * as i3 from "@memberjunction/ng-base-forms";
|
|
22
|
+
import * as i4 from "@memberjunction/ng-shared-generic";
|
|
23
|
+
import * as i5 from "@angular/common";
|
|
24
|
+
function MJFileFormComponentExtended_Conditional_0_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
25
|
+
i0.ɵɵelementStart(0, "span", 9);
|
|
26
|
+
i0.ɵɵtext(1);
|
|
27
|
+
i0.ɵɵelementEnd();
|
|
28
|
+
} if (rf & 2) {
|
|
29
|
+
i0.ɵɵadvance();
|
|
30
|
+
i0.ɵɵtextInterpolate(ctx);
|
|
31
|
+
} }
|
|
32
|
+
function MJFileFormComponentExtended_Conditional_0_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
23
33
|
i0.ɵɵelementStart(0, "span", 10);
|
|
24
34
|
i0.ɵɵtext(1);
|
|
25
35
|
i0.ɵɵelementEnd();
|
|
@@ -28,25 +38,25 @@ function MJFileFormComponentExtended_Conditional_0_Conditional_13_Template(rf, c
|
|
|
28
38
|
i0.ɵɵadvance();
|
|
29
39
|
i0.ɵɵtextInterpolate(ctx_r1.record.Status);
|
|
30
40
|
} }
|
|
31
|
-
function
|
|
41
|
+
function MJFileFormComponentExtended_Conditional_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
32
42
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
33
43
|
i0.ɵɵelementStart(0, "button", 22);
|
|
34
|
-
i0.ɵɵlistener("click", function
|
|
44
|
+
i0.ɵɵlistener("click", function MJFileFormComponentExtended_Conditional_0_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OpenInExternalTab()); });
|
|
35
45
|
i0.ɵɵelement(1, "i", 23);
|
|
36
46
|
i0.ɵɵelementStart(2, "span");
|
|
37
47
|
i0.ɵɵtext(3, "Open in New Tab");
|
|
38
48
|
i0.ɵɵelementEnd()();
|
|
39
49
|
} }
|
|
40
|
-
function
|
|
50
|
+
function MJFileFormComponentExtended_Conditional_0_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
41
51
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
42
52
|
i0.ɵɵelementStart(0, "button", 24);
|
|
43
|
-
i0.ɵɵlistener("click", function
|
|
53
|
+
i0.ɵɵlistener("click", function MJFileFormComponentExtended_Conditional_0_Conditional_19_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleViewMode()); });
|
|
44
54
|
i0.ɵɵelement(1, "i", 25);
|
|
45
55
|
i0.ɵɵelementStart(2, "span");
|
|
46
56
|
i0.ɵɵtext(3, "Edit Record");
|
|
47
57
|
i0.ɵɵelementEnd()();
|
|
48
58
|
} }
|
|
49
|
-
function
|
|
59
|
+
function MJFileFormComponentExtended_Conditional_0_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
50
60
|
i0.ɵɵelementStart(0, "div", 18);
|
|
51
61
|
i0.ɵɵelement(1, "mj-loading", 26);
|
|
52
62
|
i0.ɵɵelementEnd();
|
|
@@ -55,10 +65,10 @@ function MJFileFormComponentExtended_Conditional_0_Conditional_23_Template(rf, c
|
|
|
55
65
|
i0.ɵɵadvance();
|
|
56
66
|
i0.ɵɵproperty("text", "Loading " + (ctx_r1.record.Name || "file") + "...");
|
|
57
67
|
} }
|
|
58
|
-
function
|
|
68
|
+
function MJFileFormComponentExtended_Conditional_0_Case_23_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
59
69
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
60
70
|
i0.ɵɵelementStart(0, "div", 28)(1, "img", 29);
|
|
61
|
-
i0.ɵɵlistener("load", function
|
|
71
|
+
i0.ɵɵlistener("load", function MJFileFormComponentExtended_Conditional_0_Case_23_Conditional_0_Template_img_load_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); })("error", function MJFileFormComponentExtended_Conditional_0_Case_23_Conditional_0_Template_img_error_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); });
|
|
62
72
|
i0.ɵɵelementEnd()();
|
|
63
73
|
} if (rf & 2) {
|
|
64
74
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -66,7 +76,7 @@ function MJFileFormComponentExtended_Conditional_0_Case_24_Conditional_0_Templat
|
|
|
66
76
|
i0.ɵɵadvance();
|
|
67
77
|
i0.ɵɵproperty("src", ctx_r1.MediaUrl, i0.ɵɵsanitizeUrl)("alt", ctx_r1.record.Name);
|
|
68
78
|
} }
|
|
69
|
-
function
|
|
79
|
+
function MJFileFormComponentExtended_Conditional_0_Case_23_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
70
80
|
i0.ɵɵelementStart(0, "div", 20);
|
|
71
81
|
i0.ɵɵelement(1, "i", 30);
|
|
72
82
|
i0.ɵɵelementStart(2, "h3");
|
|
@@ -80,16 +90,16 @@ function MJFileFormComponentExtended_Conditional_0_Case_24_Conditional_1_Templat
|
|
|
80
90
|
i0.ɵɵadvance(3);
|
|
81
91
|
i0.ɵɵtextInterpolate(ctx_r1.record.Name);
|
|
82
92
|
} }
|
|
83
|
-
function
|
|
84
|
-
i0.ɵɵconditionalCreate(0,
|
|
93
|
+
function MJFileFormComponentExtended_Conditional_0_Case_23_Template(rf, ctx) { if (rf & 1) {
|
|
94
|
+
i0.ɵɵconditionalCreate(0, MJFileFormComponentExtended_Conditional_0_Case_23_Conditional_0_Template, 2, 4, "div", 27)(1, MJFileFormComponentExtended_Conditional_0_Case_23_Conditional_1_Template, 6, 1, "div", 20);
|
|
85
95
|
} if (rf & 2) {
|
|
86
96
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
87
97
|
i0.ɵɵconditional(ctx_r1.MediaUrl ? 0 : 1);
|
|
88
98
|
} }
|
|
89
|
-
function
|
|
99
|
+
function MJFileFormComponentExtended_Conditional_0_Case_24_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
90
100
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
91
101
|
i0.ɵɵelementStart(0, "div", 32)(1, "iframe", 33);
|
|
92
|
-
i0.ɵɵlistener("load", function
|
|
102
|
+
i0.ɵɵlistener("load", function MJFileFormComponentExtended_Conditional_0_Case_24_Conditional_0_Template_iframe_load_1_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); });
|
|
93
103
|
i0.ɵɵelementEnd()();
|
|
94
104
|
} if (rf & 2) {
|
|
95
105
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -97,7 +107,7 @@ function MJFileFormComponentExtended_Conditional_0_Case_25_Conditional_0_Templat
|
|
|
97
107
|
i0.ɵɵadvance();
|
|
98
108
|
i0.ɵɵproperty("src", ctx_r1.SafeMediaUrl, i0.ɵɵsanitizeResourceUrl);
|
|
99
109
|
} }
|
|
100
|
-
function
|
|
110
|
+
function MJFileFormComponentExtended_Conditional_0_Case_24_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
101
111
|
i0.ɵɵelementStart(0, "div", 20);
|
|
102
112
|
i0.ɵɵelement(1, "i", 34);
|
|
103
113
|
i0.ɵɵelementStart(2, "h3");
|
|
@@ -111,16 +121,16 @@ function MJFileFormComponentExtended_Conditional_0_Case_25_Conditional_1_Templat
|
|
|
111
121
|
i0.ɵɵadvance(3);
|
|
112
122
|
i0.ɵɵtextInterpolate(ctx_r1.record.Name);
|
|
113
123
|
} }
|
|
114
|
-
function
|
|
115
|
-
i0.ɵɵconditionalCreate(0,
|
|
124
|
+
function MJFileFormComponentExtended_Conditional_0_Case_24_Template(rf, ctx) { if (rf & 1) {
|
|
125
|
+
i0.ɵɵconditionalCreate(0, MJFileFormComponentExtended_Conditional_0_Case_24_Conditional_0_Template, 2, 3, "div", 31)(1, MJFileFormComponentExtended_Conditional_0_Case_24_Conditional_1_Template, 6, 1, "div", 20);
|
|
116
126
|
} if (rf & 2) {
|
|
117
127
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
118
128
|
i0.ɵɵconditional(ctx_r1.SafeMediaUrl ? 0 : 1);
|
|
119
129
|
} }
|
|
120
|
-
function
|
|
130
|
+
function MJFileFormComponentExtended_Conditional_0_Case_25_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
121
131
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
122
132
|
i0.ɵɵelementStart(0, "div", 36)(1, "video", 37);
|
|
123
|
-
i0.ɵɵlistener("loadeddata", function
|
|
133
|
+
i0.ɵɵlistener("loadeddata", function MJFileFormComponentExtended_Conditional_0_Case_25_Conditional_0_Template_video_loadeddata_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); })("error", function MJFileFormComponentExtended_Conditional_0_Case_25_Conditional_0_Template_video_error_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); });
|
|
124
134
|
i0.ɵɵelementEnd()();
|
|
125
135
|
} if (rf & 2) {
|
|
126
136
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -128,7 +138,7 @@ function MJFileFormComponentExtended_Conditional_0_Case_26_Conditional_0_Templat
|
|
|
128
138
|
i0.ɵɵadvance();
|
|
129
139
|
i0.ɵɵproperty("src", ctx_r1.MediaUrl, i0.ɵɵsanitizeUrl);
|
|
130
140
|
} }
|
|
131
|
-
function
|
|
141
|
+
function MJFileFormComponentExtended_Conditional_0_Case_25_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
132
142
|
i0.ɵɵelementStart(0, "div", 20);
|
|
133
143
|
i0.ɵɵelement(1, "i", 38);
|
|
134
144
|
i0.ɵɵelementStart(2, "h3");
|
|
@@ -142,19 +152,19 @@ function MJFileFormComponentExtended_Conditional_0_Case_26_Conditional_1_Templat
|
|
|
142
152
|
i0.ɵɵadvance(3);
|
|
143
153
|
i0.ɵɵtextInterpolate(ctx_r1.record.Name);
|
|
144
154
|
} }
|
|
145
|
-
function
|
|
146
|
-
i0.ɵɵconditionalCreate(0,
|
|
155
|
+
function MJFileFormComponentExtended_Conditional_0_Case_25_Template(rf, ctx) { if (rf & 1) {
|
|
156
|
+
i0.ɵɵconditionalCreate(0, MJFileFormComponentExtended_Conditional_0_Case_25_Conditional_0_Template, 2, 3, "div", 35)(1, MJFileFormComponentExtended_Conditional_0_Case_25_Conditional_1_Template, 6, 1, "div", 20);
|
|
147
157
|
} if (rf & 2) {
|
|
148
158
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
149
159
|
i0.ɵɵconditional(ctx_r1.MediaUrl ? 0 : 1);
|
|
150
160
|
} }
|
|
151
|
-
function
|
|
161
|
+
function MJFileFormComponentExtended_Conditional_0_Case_26_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
152
162
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
153
163
|
i0.ɵɵelementStart(0, "div", 40)(1, "div", 41);
|
|
154
164
|
i0.ɵɵelement(2, "i", 42);
|
|
155
165
|
i0.ɵɵelementEnd();
|
|
156
166
|
i0.ɵɵelementStart(3, "audio", 43);
|
|
157
|
-
i0.ɵɵlistener("loadeddata", function
|
|
167
|
+
i0.ɵɵlistener("loadeddata", function MJFileFormComponentExtended_Conditional_0_Case_26_Conditional_0_Template_audio_loadeddata_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); })("error", function MJFileFormComponentExtended_Conditional_0_Case_26_Conditional_0_Template_audio_error_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); });
|
|
158
168
|
i0.ɵɵelementEnd()();
|
|
159
169
|
} if (rf & 2) {
|
|
160
170
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -162,7 +172,7 @@ function MJFileFormComponentExtended_Conditional_0_Case_27_Conditional_0_Templat
|
|
|
162
172
|
i0.ɵɵadvance(3);
|
|
163
173
|
i0.ɵɵproperty("src", ctx_r1.MediaUrl);
|
|
164
174
|
} }
|
|
165
|
-
function
|
|
175
|
+
function MJFileFormComponentExtended_Conditional_0_Case_26_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
166
176
|
i0.ɵɵelementStart(0, "div", 20);
|
|
167
177
|
i0.ɵɵelement(1, "i", 44);
|
|
168
178
|
i0.ɵɵelementStart(2, "h3");
|
|
@@ -176,13 +186,13 @@ function MJFileFormComponentExtended_Conditional_0_Case_27_Conditional_1_Templat
|
|
|
176
186
|
i0.ɵɵadvance(3);
|
|
177
187
|
i0.ɵɵtextInterpolate(ctx_r1.record.Name);
|
|
178
188
|
} }
|
|
179
|
-
function
|
|
180
|
-
i0.ɵɵconditionalCreate(0,
|
|
189
|
+
function MJFileFormComponentExtended_Conditional_0_Case_26_Template(rf, ctx) { if (rf & 1) {
|
|
190
|
+
i0.ɵɵconditionalCreate(0, MJFileFormComponentExtended_Conditional_0_Case_26_Conditional_0_Template, 4, 3, "div", 39)(1, MJFileFormComponentExtended_Conditional_0_Case_26_Conditional_1_Template, 6, 1, "div", 20);
|
|
181
191
|
} if (rf & 2) {
|
|
182
192
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
183
193
|
i0.ɵɵconditional(ctx_r1.MediaUrl ? 0 : 1);
|
|
184
194
|
} }
|
|
185
|
-
function
|
|
195
|
+
function MJFileFormComponentExtended_Conditional_0_Case_27_Template(rf, ctx) { if (rf & 1) {
|
|
186
196
|
i0.ɵɵelementStart(0, "div", 19)(1, "pre")(2, "code");
|
|
187
197
|
i0.ɵɵtext(3);
|
|
188
198
|
i0.ɵɵelementEnd()()();
|
|
@@ -191,47 +201,118 @@ function MJFileFormComponentExtended_Conditional_0_Case_28_Template(rf, ctx) { i
|
|
|
191
201
|
i0.ɵɵadvance(3);
|
|
192
202
|
i0.ɵɵtextInterpolate(ctx_r1.TextContent || "Loading text content...");
|
|
193
203
|
} }
|
|
194
|
-
function
|
|
204
|
+
function MJFileFormComponentExtended_Conditional_0_Case_28_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
195
205
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
196
|
-
i0.ɵɵelementStart(0, "
|
|
197
|
-
i0.ɵɵlistener("
|
|
206
|
+
i0.ɵɵelementStart(0, "div", 46)(1, "mj-docx-preview", 47);
|
|
207
|
+
i0.ɵɵlistener("Loaded", function MJFileFormComponentExtended_Conditional_0_Case_28_Conditional_0_Template_mj_docx_preview_Loaded_1_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); })("Failed", function MJFileFormComponentExtended_Conditional_0_Case_28_Conditional_0_Template_mj_docx_preview_Failed_1_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); });
|
|
208
|
+
i0.ɵɵelementEnd()();
|
|
209
|
+
} if (rf & 2) {
|
|
210
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
211
|
+
i0.ɵɵclassProp("mj-file-media--hidden", !ctx_r1.IsMediaLoaded);
|
|
212
|
+
i0.ɵɵadvance();
|
|
213
|
+
i0.ɵɵproperty("Url", ctx_r1.MediaUrl);
|
|
214
|
+
} }
|
|
215
|
+
function MJFileFormComponentExtended_Conditional_0_Case_28_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
216
|
+
i0.ɵɵelementStart(0, "div", 20);
|
|
217
|
+
i0.ɵɵelement(1, "i", 48);
|
|
218
|
+
i0.ɵɵelementStart(2, "h3");
|
|
219
|
+
i0.ɵɵtext(3);
|
|
220
|
+
i0.ɵɵelementEnd();
|
|
221
|
+
i0.ɵɵelementStart(4, "p");
|
|
222
|
+
i0.ɵɵtext(5, "Document preview could not be loaded.");
|
|
223
|
+
i0.ɵɵelementEnd()();
|
|
224
|
+
} if (rf & 2) {
|
|
225
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
226
|
+
i0.ɵɵadvance(3);
|
|
227
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.Name);
|
|
228
|
+
} }
|
|
229
|
+
function MJFileFormComponentExtended_Conditional_0_Case_28_Template(rf, ctx) { if (rf & 1) {
|
|
230
|
+
i0.ɵɵconditionalCreate(0, MJFileFormComponentExtended_Conditional_0_Case_28_Conditional_0_Template, 2, 3, "div", 45)(1, MJFileFormComponentExtended_Conditional_0_Case_28_Conditional_1_Template, 6, 1, "div", 20);
|
|
231
|
+
} if (rf & 2) {
|
|
232
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
233
|
+
i0.ɵɵconditional(ctx_r1.MediaUrl ? 0 : 1);
|
|
234
|
+
} }
|
|
235
|
+
function MJFileFormComponentExtended_Conditional_0_Case_29_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
236
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
237
|
+
i0.ɵɵelementStart(0, "div", 46)(1, "mj-xlsx-preview", 47);
|
|
238
|
+
i0.ɵɵlistener("Loaded", function MJFileFormComponentExtended_Conditional_0_Case_29_Conditional_0_Template_mj_xlsx_preview_Loaded_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); })("Failed", function MJFileFormComponentExtended_Conditional_0_Case_29_Conditional_0_Template_mj_xlsx_preview_Failed_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMediaElementLoaded()); });
|
|
239
|
+
i0.ɵɵelementEnd()();
|
|
240
|
+
} if (rf & 2) {
|
|
241
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
242
|
+
i0.ɵɵclassProp("mj-file-media--hidden", !ctx_r1.IsMediaLoaded);
|
|
243
|
+
i0.ɵɵadvance();
|
|
244
|
+
i0.ɵɵproperty("Url", ctx_r1.MediaUrl);
|
|
245
|
+
} }
|
|
246
|
+
function MJFileFormComponentExtended_Conditional_0_Case_29_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
247
|
+
i0.ɵɵelementStart(0, "div", 20);
|
|
248
|
+
i0.ɵɵelement(1, "i", 49);
|
|
249
|
+
i0.ɵɵelementStart(2, "h3");
|
|
250
|
+
i0.ɵɵtext(3);
|
|
251
|
+
i0.ɵɵelementEnd();
|
|
252
|
+
i0.ɵɵelementStart(4, "p");
|
|
253
|
+
i0.ɵɵtext(5, "Workbook preview could not be loaded.");
|
|
254
|
+
i0.ɵɵelementEnd()();
|
|
255
|
+
} if (rf & 2) {
|
|
256
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
257
|
+
i0.ɵɵadvance(3);
|
|
258
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.Name);
|
|
259
|
+
} }
|
|
260
|
+
function MJFileFormComponentExtended_Conditional_0_Case_29_Template(rf, ctx) { if (rf & 1) {
|
|
261
|
+
i0.ɵɵconditionalCreate(0, MJFileFormComponentExtended_Conditional_0_Case_29_Conditional_0_Template, 2, 3, "div", 45)(1, MJFileFormComponentExtended_Conditional_0_Case_29_Conditional_1_Template, 6, 1, "div", 20);
|
|
262
|
+
} if (rf & 2) {
|
|
263
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
264
|
+
i0.ɵɵconditional(ctx_r1.MediaUrl ? 0 : 1);
|
|
265
|
+
} }
|
|
266
|
+
function MJFileFormComponentExtended_Conditional_0_Case_30_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
267
|
+
i0.ɵɵtext(0);
|
|
268
|
+
} if (rf & 2) {
|
|
269
|
+
i0.ɵɵtextInterpolate1(" \u2022 ", ctx);
|
|
270
|
+
} }
|
|
271
|
+
function MJFileFormComponentExtended_Conditional_0_Case_30_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
272
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
273
|
+
i0.ɵɵelementStart(0, "button", 54);
|
|
274
|
+
i0.ɵɵlistener("click", function MJFileFormComponentExtended_Conditional_0_Case_30_Conditional_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OpenInExternalTab()); });
|
|
198
275
|
i0.ɵɵelement(1, "i", 23);
|
|
199
276
|
i0.ɵɵelementStart(2, "span");
|
|
200
277
|
i0.ɵɵtext(3, "Open in Browser");
|
|
201
278
|
i0.ɵɵelementEnd()();
|
|
202
279
|
} }
|
|
203
|
-
function
|
|
280
|
+
function MJFileFormComponentExtended_Conditional_0_Case_30_Template(rf, ctx) { if (rf & 1) {
|
|
204
281
|
i0.ɵɵelementStart(0, "div", 20);
|
|
205
|
-
i0.ɵɵelement(1, "i",
|
|
282
|
+
i0.ɵɵelement(1, "i", 50);
|
|
206
283
|
i0.ɵɵelementStart(2, "h3");
|
|
207
284
|
i0.ɵɵtext(3);
|
|
208
285
|
i0.ɵɵelementEnd();
|
|
209
|
-
i0.ɵɵelementStart(4, "p",
|
|
286
|
+
i0.ɵɵelementStart(4, "p", 51);
|
|
210
287
|
i0.ɵɵtext(5);
|
|
288
|
+
i0.ɵɵconditionalCreate(6, MJFileFormComponentExtended_Conditional_0_Case_30_Conditional_6_Template, 1, 1);
|
|
211
289
|
i0.ɵɵelementEnd();
|
|
212
|
-
i0.ɵɵelementStart(
|
|
213
|
-
i0.ɵɵtext(
|
|
290
|
+
i0.ɵɵelementStart(7, "p", 52);
|
|
291
|
+
i0.ɵɵtext(8);
|
|
214
292
|
i0.ɵɵelementEnd();
|
|
215
|
-
i0.ɵɵconditionalCreate(
|
|
293
|
+
i0.ɵɵconditionalCreate(9, MJFileFormComponentExtended_Conditional_0_Case_30_Conditional_9_Template, 4, 0, "button", 53);
|
|
216
294
|
i0.ɵɵelementEnd();
|
|
217
295
|
} if (rf & 2) {
|
|
296
|
+
let tmp_5_0;
|
|
218
297
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
219
298
|
i0.ɵɵadvance();
|
|
220
299
|
i0.ɵɵclassMap(ctx_r1.FileIconClass);
|
|
221
300
|
i0.ɵɵadvance(2);
|
|
222
301
|
i0.ɵɵtextInterpolate(ctx_r1.record.Name);
|
|
223
302
|
i0.ɵɵadvance(2);
|
|
224
|
-
i0.ɵɵ
|
|
303
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.ContentType || "Document");
|
|
304
|
+
i0.ɵɵadvance();
|
|
305
|
+
i0.ɵɵconditional((tmp_5_0 = ctx_r1.FileSizeLabel) ? 6 : -1, tmp_5_0);
|
|
225
306
|
i0.ɵɵadvance(2);
|
|
226
307
|
i0.ɵɵtextInterpolate(ctx_r1.record.Description || "Preview is not available for this file type.");
|
|
227
308
|
i0.ɵɵadvance();
|
|
228
|
-
i0.ɵɵconditional(ctx_r1.MediaUrl ?
|
|
309
|
+
i0.ɵɵconditional(ctx_r1.MediaUrl ? 9 : -1);
|
|
229
310
|
} }
|
|
230
|
-
function
|
|
231
|
-
i0.ɵɵelementStart(0, "div",
|
|
311
|
+
function MJFileFormComponentExtended_Conditional_0_Conditional_31_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
312
|
+
i0.ɵɵelementStart(0, "div", 60)(1, "span", 61);
|
|
232
313
|
i0.ɵɵtext(2, "Description:");
|
|
233
314
|
i0.ɵɵelementEnd();
|
|
234
|
-
i0.ɵɵelementStart(3, "span",
|
|
315
|
+
i0.ɵɵelementStart(3, "span", 64);
|
|
235
316
|
i0.ɵɵtext(4);
|
|
236
317
|
i0.ɵɵelementEnd()();
|
|
237
318
|
} if (rf & 2) {
|
|
@@ -239,11 +320,22 @@ function MJFileFormComponentExtended_Conditional_0_Conditional_30_Conditional_13
|
|
|
239
320
|
i0.ɵɵadvance(4);
|
|
240
321
|
i0.ɵɵtextInterpolate(ctx_r1.record.Description);
|
|
241
322
|
} }
|
|
242
|
-
function
|
|
243
|
-
i0.ɵɵelementStart(0, "div",
|
|
323
|
+
function MJFileFormComponentExtended_Conditional_0_Conditional_31_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
324
|
+
i0.ɵɵelementStart(0, "div", 60)(1, "span", 61);
|
|
325
|
+
i0.ɵɵtext(2, "Size:");
|
|
326
|
+
i0.ɵɵelementEnd();
|
|
327
|
+
i0.ɵɵelementStart(3, "span", 64);
|
|
328
|
+
i0.ɵɵtext(4);
|
|
329
|
+
i0.ɵɵelementEnd()();
|
|
330
|
+
} if (rf & 2) {
|
|
331
|
+
i0.ɵɵadvance(4);
|
|
332
|
+
i0.ɵɵtextInterpolate(ctx);
|
|
333
|
+
} }
|
|
334
|
+
function MJFileFormComponentExtended_Conditional_0_Conditional_31_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
335
|
+
i0.ɵɵelementStart(0, "div", 60)(1, "span", 61);
|
|
244
336
|
i0.ɵɵtext(2, "Status:");
|
|
245
337
|
i0.ɵɵelementEnd();
|
|
246
|
-
i0.ɵɵelementStart(3, "span",
|
|
338
|
+
i0.ɵɵelementStart(3, "span", 64);
|
|
247
339
|
i0.ɵɵtext(4);
|
|
248
340
|
i0.ɵɵelementEnd()();
|
|
249
341
|
} if (rf & 2) {
|
|
@@ -251,51 +343,47 @@ function MJFileFormComponentExtended_Conditional_0_Conditional_30_Conditional_24
|
|
|
251
343
|
i0.ɵɵadvance(4);
|
|
252
344
|
i0.ɵɵtextInterpolate(ctx_r1.record.Status);
|
|
253
345
|
} }
|
|
254
|
-
function
|
|
255
|
-
const
|
|
256
|
-
i0.ɵɵelementStart(0, "aside", 21)(1, "div",
|
|
346
|
+
function MJFileFormComponentExtended_Conditional_0_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
347
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
348
|
+
i0.ɵɵelementStart(0, "aside", 21)(1, "div", 55)(2, "h3");
|
|
257
349
|
i0.ɵɵtext(3, "File Details & Links");
|
|
258
350
|
i0.ɵɵelementEnd();
|
|
259
|
-
i0.ɵɵelementStart(4, "button",
|
|
260
|
-
i0.ɵɵlistener("click", function
|
|
261
|
-
i0.ɵɵelement(5, "i",
|
|
351
|
+
i0.ɵɵelementStart(4, "button", 56);
|
|
352
|
+
i0.ɵɵlistener("click", function MJFileFormComponentExtended_Conditional_0_Conditional_31_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleDetailsSidebar()); });
|
|
353
|
+
i0.ɵɵelement(5, "i", 57);
|
|
262
354
|
i0.ɵɵelementEnd()();
|
|
263
|
-
i0.ɵɵelementStart(6, "div",
|
|
355
|
+
i0.ɵɵelementStart(6, "div", 58)(7, "div", 59)(8, "div", 60)(9, "span", 61);
|
|
264
356
|
i0.ɵɵtext(10, "File Name:");
|
|
265
357
|
i0.ɵɵelementEnd();
|
|
266
|
-
i0.ɵɵelementStart(11, "span",
|
|
358
|
+
i0.ɵɵelementStart(11, "span", 62);
|
|
267
359
|
i0.ɵɵtext(12);
|
|
268
360
|
i0.ɵɵelementEnd()();
|
|
269
|
-
i0.ɵɵconditionalCreate(13,
|
|
270
|
-
i0.ɵɵelementStart(14, "div",
|
|
361
|
+
i0.ɵɵconditionalCreate(13, MJFileFormComponentExtended_Conditional_0_Conditional_31_Conditional_13_Template, 5, 1, "div", 60);
|
|
362
|
+
i0.ɵɵelementStart(14, "div", 60)(15, "span", 61);
|
|
271
363
|
i0.ɵɵtext(16, "MIME Type:");
|
|
272
364
|
i0.ɵɵelementEnd();
|
|
273
|
-
i0.ɵɵelementStart(17, "span",
|
|
365
|
+
i0.ɵɵelementStart(17, "span", 63);
|
|
274
366
|
i0.ɵɵtext(18);
|
|
275
367
|
i0.ɵɵelementEnd()();
|
|
276
|
-
i0.ɵɵ
|
|
277
|
-
i0.ɵɵ
|
|
368
|
+
i0.ɵɵconditionalCreate(19, MJFileFormComponentExtended_Conditional_0_Conditional_31_Conditional_19_Template, 5, 1, "div", 60);
|
|
369
|
+
i0.ɵɵconditionalCreate(20, MJFileFormComponentExtended_Conditional_0_Conditional_31_Conditional_20_Template, 5, 1, "div", 60);
|
|
370
|
+
i0.ɵɵelementStart(21, "div", 60)(22, "span", 61);
|
|
371
|
+
i0.ɵɵtext(23, "Created:");
|
|
278
372
|
i0.ɵɵelementEnd();
|
|
279
|
-
i0.ɵɵelementStart(
|
|
280
|
-
i0.ɵɵtext(
|
|
281
|
-
i0.ɵɵ
|
|
282
|
-
i0.ɵɵconditionalCreate(24, MJFileFormComponentExtended_Conditional_0_Conditional_30_Conditional_24_Template, 5, 1, "div", 55);
|
|
283
|
-
i0.ɵɵelementStart(25, "div", 55)(26, "span", 56);
|
|
284
|
-
i0.ɵɵtext(27, "Created:");
|
|
285
|
-
i0.ɵɵelementEnd();
|
|
286
|
-
i0.ɵɵelementStart(28, "span", 59);
|
|
287
|
-
i0.ɵɵtext(29);
|
|
288
|
-
i0.ɵɵpipe(30, "date");
|
|
373
|
+
i0.ɵɵelementStart(24, "span", 64);
|
|
374
|
+
i0.ɵɵtext(25);
|
|
375
|
+
i0.ɵɵpipe(26, "date");
|
|
289
376
|
i0.ɵɵelementEnd()()();
|
|
290
|
-
i0.ɵɵelementStart(
|
|
291
|
-
i0.ɵɵelement(
|
|
292
|
-
i0.ɵɵelementStart(
|
|
293
|
-
i0.ɵɵtext(
|
|
377
|
+
i0.ɵɵelementStart(27, "div", 65)(28, "h4", 66);
|
|
378
|
+
i0.ɵɵelement(29, "i", 67);
|
|
379
|
+
i0.ɵɵelementStart(30, "span");
|
|
380
|
+
i0.ɵɵtext(31, "Linked Records");
|
|
294
381
|
i0.ɵɵelementEnd()();
|
|
295
|
-
i0.ɵɵelementStart(
|
|
296
|
-
i0.ɵɵelement(
|
|
382
|
+
i0.ɵɵelementStart(32, "div", 68);
|
|
383
|
+
i0.ɵɵelement(33, "mj-relationship-view", 69);
|
|
297
384
|
i0.ɵɵelementEnd()()()();
|
|
298
385
|
} if (rf & 2) {
|
|
386
|
+
let tmp_5_0;
|
|
299
387
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
300
388
|
i0.ɵɵadvance(12);
|
|
301
389
|
i0.ɵɵtextInterpolate(ctx_r1.record.Name);
|
|
@@ -303,12 +391,12 @@ function MJFileFormComponentExtended_Conditional_0_Conditional_30_Template(rf, c
|
|
|
303
391
|
i0.ɵɵconditional(ctx_r1.record.Description ? 13 : -1);
|
|
304
392
|
i0.ɵɵadvance(5);
|
|
305
393
|
i0.ɵɵtextInterpolate(ctx_r1.record.ContentType || "Unknown");
|
|
306
|
-
i0.ɵɵadvance(5);
|
|
307
|
-
i0.ɵɵtextInterpolate(ctx_r1.FormatFileSize(ctx_r1.record.ContentLength));
|
|
308
394
|
i0.ɵɵadvance();
|
|
309
|
-
i0.ɵɵconditional(ctx_r1.
|
|
395
|
+
i0.ɵɵconditional((tmp_5_0 = ctx_r1.FileSizeLabel) ? 19 : -1, tmp_5_0);
|
|
396
|
+
i0.ɵɵadvance();
|
|
397
|
+
i0.ɵɵconditional(ctx_r1.record.Status ? 20 : -1);
|
|
310
398
|
i0.ɵɵadvance(5);
|
|
311
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(
|
|
399
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(26, 8, ctx_r1.record.__mj_CreatedAt, "short"));
|
|
312
400
|
i0.ɵɵadvance(8);
|
|
313
401
|
i0.ɵɵproperty("Params", ctx_r1.BuildRelationshipViewParamsByEntityName("MJ: File Entity Record Links", "FileID"))("NewRecordValues", ctx_r1.NewRecordValues("MJ: File Entity Record Links", "FileID"));
|
|
314
402
|
} }
|
|
@@ -323,28 +411,27 @@ function MJFileFormComponentExtended_Conditional_0_Template(rf, ctx) { if (rf &
|
|
|
323
411
|
i0.ɵɵelementStart(8, "div", 7)(9, "span", 8);
|
|
324
412
|
i0.ɵɵtext(10);
|
|
325
413
|
i0.ɵɵelementEnd();
|
|
326
|
-
i0.ɵɵ
|
|
327
|
-
i0.ɵɵ
|
|
328
|
-
i0.ɵɵelementEnd();
|
|
329
|
-
i0.ɵɵconditionalCreate(13, MJFileFormComponentExtended_Conditional_0_Conditional_13_Template, 2, 1, "span", 10);
|
|
414
|
+
i0.ɵɵconditionalCreate(11, MJFileFormComponentExtended_Conditional_0_Conditional_11_Template, 2, 1, "span", 9);
|
|
415
|
+
i0.ɵɵconditionalCreate(12, MJFileFormComponentExtended_Conditional_0_Conditional_12_Template, 2, 1, "span", 10);
|
|
330
416
|
i0.ɵɵelementEnd()()();
|
|
331
|
-
i0.ɵɵelementStart(
|
|
332
|
-
i0.ɵɵconditionalCreate(
|
|
333
|
-
i0.ɵɵelementStart(
|
|
334
|
-
i0.ɵɵlistener("click", function
|
|
335
|
-
i0.ɵɵelement(
|
|
336
|
-
i0.ɵɵelementStart(
|
|
337
|
-
i0.ɵɵtext(
|
|
417
|
+
i0.ɵɵelementStart(13, "div", 11);
|
|
418
|
+
i0.ɵɵconditionalCreate(14, MJFileFormComponentExtended_Conditional_0_Conditional_14_Template, 4, 0, "button", 12);
|
|
419
|
+
i0.ɵɵelementStart(15, "button", 13);
|
|
420
|
+
i0.ɵɵlistener("click", function MJFileFormComponentExtended_Conditional_0_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleDetailsSidebar()); });
|
|
421
|
+
i0.ɵɵelement(16, "i", 14);
|
|
422
|
+
i0.ɵɵelementStart(17, "span");
|
|
423
|
+
i0.ɵɵtext(18);
|
|
338
424
|
i0.ɵɵelementEnd()();
|
|
339
|
-
i0.ɵɵconditionalCreate(
|
|
425
|
+
i0.ɵɵconditionalCreate(19, MJFileFormComponentExtended_Conditional_0_Conditional_19_Template, 4, 0, "button", 15);
|
|
340
426
|
i0.ɵɵelementEnd()();
|
|
341
|
-
i0.ɵɵelementStart(
|
|
342
|
-
i0.ɵɵconditionalCreate(
|
|
343
|
-
i0.ɵɵconditionalCreate(24, MJFileFormComponentExtended_Conditional_0_Case_24_Template, 2, 1)(25, MJFileFormComponentExtended_Conditional_0_Case_25_Template, 2, 1)(26, MJFileFormComponentExtended_Conditional_0_Case_26_Template, 2, 1)(27, MJFileFormComponentExtended_Conditional_0_Case_27_Template,
|
|
427
|
+
i0.ɵɵelementStart(20, "div", 16)(21, "main", 17);
|
|
428
|
+
i0.ɵɵconditionalCreate(22, MJFileFormComponentExtended_Conditional_0_Conditional_22_Template, 2, 1, "div", 18);
|
|
429
|
+
i0.ɵɵconditionalCreate(23, MJFileFormComponentExtended_Conditional_0_Case_23_Template, 2, 1)(24, MJFileFormComponentExtended_Conditional_0_Case_24_Template, 2, 1)(25, MJFileFormComponentExtended_Conditional_0_Case_25_Template, 2, 1)(26, MJFileFormComponentExtended_Conditional_0_Case_26_Template, 2, 1)(27, MJFileFormComponentExtended_Conditional_0_Case_27_Template, 4, 1, "div", 19)(28, MJFileFormComponentExtended_Conditional_0_Case_28_Template, 2, 1)(29, MJFileFormComponentExtended_Conditional_0_Case_29_Template, 2, 1)(30, MJFileFormComponentExtended_Conditional_0_Case_30_Template, 10, 7, "div", 20);
|
|
344
430
|
i0.ɵɵelementEnd();
|
|
345
|
-
i0.ɵɵconditionalCreate(
|
|
431
|
+
i0.ɵɵconditionalCreate(31, MJFileFormComponentExtended_Conditional_0_Conditional_31_Template, 34, 11, "aside", 21);
|
|
346
432
|
i0.ɵɵelementEnd()();
|
|
347
433
|
} if (rf & 2) {
|
|
434
|
+
let tmp_5_0;
|
|
348
435
|
let tmp_12_0;
|
|
349
436
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
350
437
|
i0.ɵɵadvance(4);
|
|
@@ -355,49 +442,49 @@ function MJFileFormComponentExtended_Conditional_0_Template(rf, ctx) { if (rf &
|
|
|
355
442
|
i0.ɵɵtextInterpolate(ctx_r1.record.Name);
|
|
356
443
|
i0.ɵɵadvance(3);
|
|
357
444
|
i0.ɵɵtextInterpolate(ctx_r1.record.ContentType || "Document");
|
|
358
|
-
i0.ɵɵadvance(2);
|
|
359
|
-
i0.ɵɵtextInterpolate(ctx_r1.FormatFileSize(ctx_r1.record.ContentLength));
|
|
360
445
|
i0.ɵɵadvance();
|
|
361
|
-
i0.ɵɵconditional(ctx_r1.
|
|
446
|
+
i0.ɵɵconditional((tmp_5_0 = ctx_r1.FileSizeLabel) ? 11 : -1, tmp_5_0);
|
|
447
|
+
i0.ɵɵadvance();
|
|
448
|
+
i0.ɵɵconditional(ctx_r1.record.Status ? 12 : -1);
|
|
362
449
|
i0.ɵɵadvance(2);
|
|
363
|
-
i0.ɵɵconditional(ctx_r1.MediaUrl ?
|
|
450
|
+
i0.ɵɵconditional(ctx_r1.MediaUrl ? 14 : -1);
|
|
364
451
|
i0.ɵɵadvance();
|
|
365
452
|
i0.ɵɵproperty("title", ctx_r1.ShowDetailsSidebar ? "Hide Details" : "Show Details");
|
|
366
453
|
i0.ɵɵadvance(3);
|
|
367
454
|
i0.ɵɵtextInterpolate(ctx_r1.ShowDetailsSidebar ? "Hide Details" : "Details");
|
|
368
455
|
i0.ɵɵadvance();
|
|
369
|
-
i0.ɵɵconditional(ctx_r1.UserCanEdit ?
|
|
456
|
+
i0.ɵɵconditional(ctx_r1.UserCanEdit ? 19 : -1);
|
|
370
457
|
i0.ɵɵadvance(3);
|
|
371
|
-
i0.ɵɵconditional(ctx_r1.IsLoadingMedia || !ctx_r1.IsMediaLoaded ?
|
|
458
|
+
i0.ɵɵconditional(ctx_r1.IsLoadingMedia || !ctx_r1.IsMediaLoaded ? 22 : -1);
|
|
372
459
|
i0.ɵɵadvance();
|
|
373
|
-
i0.ɵɵconditional((tmp_12_0 = ctx_r1.MediaType) === "image" ?
|
|
374
|
-
i0.ɵɵadvance(
|
|
375
|
-
i0.ɵɵconditional(ctx_r1.ShowDetailsSidebar ?
|
|
460
|
+
i0.ɵɵconditional((tmp_12_0 = ctx_r1.MediaType) === "image" ? 23 : tmp_12_0 === "pdf" ? 24 : tmp_12_0 === "video" ? 25 : tmp_12_0 === "audio" ? 26 : tmp_12_0 === "text" ? 27 : tmp_12_0 === "docx" ? 28 : tmp_12_0 === "xlsx" ? 29 : 30);
|
|
461
|
+
i0.ɵɵadvance(8);
|
|
462
|
+
i0.ɵɵconditional(ctx_r1.ShowDetailsSidebar ? 31 : -1);
|
|
376
463
|
} }
|
|
377
464
|
function MJFileFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
378
|
-
const
|
|
379
|
-
i0.ɵɵelementStart(0, "div", 1)(1, "div",
|
|
380
|
-
i0.ɵɵlistener("click", function MJFileFormComponentExtended_Conditional_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(
|
|
381
|
-
i0.ɵɵelement(3, "i",
|
|
465
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
466
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "div", 70)(2, "button", 71);
|
|
467
|
+
i0.ɵɵlistener("click", function MJFileFormComponentExtended_Conditional_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleViewMode()); });
|
|
468
|
+
i0.ɵɵelement(3, "i", 72);
|
|
382
469
|
i0.ɵɵelementStart(4, "span");
|
|
383
470
|
i0.ɵɵtext(5, "Return to File Preview");
|
|
384
471
|
i0.ɵɵelementEnd()()();
|
|
385
|
-
i0.ɵɵelementStart(6, "mj-record-form-container",
|
|
386
|
-
i0.ɵɵlistener("Navigate", function MJFileFormComponentExtended_Conditional_1_Template_mj_record_form_container_Navigate_6_listener($event) { i0.ɵɵrestoreView(
|
|
387
|
-
i0.ɵɵelement(7, "mj-form-panel-slot",
|
|
388
|
-
i0.ɵɵelementStart(8, "mj-collapsible-panel",
|
|
389
|
-
i0.ɵɵelement(9, "mj-form-field",
|
|
472
|
+
i0.ɵɵelementStart(6, "mj-record-form-container", 73);
|
|
473
|
+
i0.ɵɵlistener("Navigate", function MJFileFormComponentExtended_Conditional_1_Template_mj_record_form_container_Navigate_6_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("DeleteRequested", function MJFileFormComponentExtended_Conditional_1_Template_mj_record_form_container_DeleteRequested_6_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDeleteRequested()); })("FavoriteToggled", function MJFileFormComponentExtended_Conditional_1_Template_mj_record_form_container_FavoriteToggled_6_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnFavoriteToggled()); })("HistoryRequested", function MJFileFormComponentExtended_Conditional_1_Template_mj_record_form_container_HistoryRequested_6_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnHistoryRequested()); })("ListManagementRequested", function MJFileFormComponentExtended_Conditional_1_Template_mj_record_form_container_ListManagementRequested_6_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnListManagementRequested()); });
|
|
474
|
+
i0.ɵɵelement(7, "mj-form-panel-slot", 74);
|
|
475
|
+
i0.ɵɵelementStart(8, "mj-collapsible-panel", 75);
|
|
476
|
+
i0.ɵɵelement(9, "mj-form-field", 76)(10, "mj-form-field", 77);
|
|
390
477
|
i0.ɵɵelementEnd();
|
|
391
|
-
i0.ɵɵelementStart(11, "mj-collapsible-panel",
|
|
392
|
-
i0.ɵɵelement(12, "mj-form-field",
|
|
478
|
+
i0.ɵɵelementStart(11, "mj-collapsible-panel", 78);
|
|
479
|
+
i0.ɵɵelement(12, "mj-form-field", 79)(13, "mj-form-field", 80);
|
|
393
480
|
i0.ɵɵelementEnd();
|
|
394
|
-
i0.ɵɵelementStart(14, "mj-collapsible-panel",
|
|
395
|
-
i0.ɵɵelement(15, "mj-form-field",
|
|
481
|
+
i0.ɵɵelementStart(14, "mj-collapsible-panel", 81);
|
|
482
|
+
i0.ɵɵelement(15, "mj-form-field", 82)(16, "mj-form-field", 83)(17, "mj-form-field", 84);
|
|
396
483
|
i0.ɵɵelementEnd();
|
|
397
|
-
i0.ɵɵelementStart(
|
|
398
|
-
i0.ɵɵelement(
|
|
484
|
+
i0.ɵɵelementStart(18, "mj-collapsible-panel", 85);
|
|
485
|
+
i0.ɵɵelement(19, "mj-relationship-view", 69);
|
|
399
486
|
i0.ɵɵelementEnd();
|
|
400
|
-
i0.ɵɵelement(
|
|
487
|
+
i0.ɵɵelement(20, "mj-form-panel-slot", 86);
|
|
401
488
|
i0.ɵɵelementEnd()();
|
|
402
489
|
} if (rf & 2) {
|
|
403
490
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -426,8 +513,6 @@ function MJFileFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf &
|
|
|
426
513
|
i0.ɵɵadvance();
|
|
427
514
|
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
428
515
|
i0.ɵɵadvance();
|
|
429
|
-
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
430
|
-
i0.ɵɵadvance();
|
|
431
516
|
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext);
|
|
432
517
|
i0.ɵɵadvance();
|
|
433
518
|
i0.ɵɵproperty("Params", ctx_r1.BuildRelationshipViewParamsByEntityName("MJ: File Entity Record Links", "FileID"))("NewRecordValues", ctx_r1.NewRecordValues("MJ: File Entity Record Links", "FileID"));
|
|
@@ -557,6 +642,11 @@ let MJFileFormComponentExtended = class MJFileFormComponentExtended extends MJFi
|
|
|
557
642
|
}
|
|
558
643
|
this.IsMediaLoaded = true;
|
|
559
644
|
}
|
|
645
|
+
else if (!MediaLoadsByElement(mediaType)) {
|
|
646
|
+
// No element will fire `load` for this type: the fallback card is the view, so it is loaded now.
|
|
647
|
+
// Without this the overlay stayed on "Loading…" for every .zip and the like (MJ#4947).
|
|
648
|
+
this.IsMediaLoaded = true;
|
|
649
|
+
}
|
|
560
650
|
}
|
|
561
651
|
else {
|
|
562
652
|
this.IsMediaLoaded = true;
|
|
@@ -579,28 +669,9 @@ let MJFileFormComponentExtended = class MJFileFormComponentExtended extends MJFi
|
|
|
579
669
|
this.cdr.markForCheck();
|
|
580
670
|
}, 350);
|
|
581
671
|
}
|
|
582
|
-
/**
|
|
583
|
-
* Determines media type category based on MIME type or file extension.
|
|
584
|
-
*/
|
|
672
|
+
/** The viewer's category for the file, from its MIME type or its name (`ClassifyFileMediaType`). */
|
|
585
673
|
get MediaType() {
|
|
586
|
-
|
|
587
|
-
const name = (this.record?.Name || '').toLowerCase();
|
|
588
|
-
if (mime.startsWith('image/') || /\.(png|jpe?g|gif|webp|svg|ico|bmp|avif)$/.test(name))
|
|
589
|
-
return 'image';
|
|
590
|
-
if (mime === 'application/pdf' || name.endsWith('.pdf'))
|
|
591
|
-
return 'pdf';
|
|
592
|
-
if (mime.startsWith('video/') || /\.(mp4|webm|ogg|mov|mkv|avi)$/.test(name))
|
|
593
|
-
return 'video';
|
|
594
|
-
if (mime.startsWith('audio/') || /\.(mp3|wav|ogg|aac|m4a|flac)$/.test(name))
|
|
595
|
-
return 'audio';
|
|
596
|
-
if (mime.startsWith('text/') ||
|
|
597
|
-
mime.includes('json') ||
|
|
598
|
-
mime.includes('xml') ||
|
|
599
|
-
mime.includes('javascript') ||
|
|
600
|
-
/\.(txt|md|csv|json|xml|yaml|yml|js|ts|html|css|sql|sh|log)$/.test(name)) {
|
|
601
|
-
return 'text';
|
|
602
|
-
}
|
|
603
|
-
return 'other';
|
|
674
|
+
return ClassifyFileMediaType(this.record?.ContentType, this.record?.Name);
|
|
604
675
|
}
|
|
605
676
|
get FileIconClass() {
|
|
606
677
|
switch (this.MediaType) {
|
|
@@ -609,16 +680,15 @@ let MJFileFormComponentExtended = class MJFileFormComponentExtended extends MJFi
|
|
|
609
680
|
case 'video': return 'fa-solid fa-file-video mj-file-color-video';
|
|
610
681
|
case 'audio': return 'fa-solid fa-file-audio mj-file-color-audio';
|
|
611
682
|
case 'text': return 'fa-solid fa-file-lines mj-file-color-text';
|
|
683
|
+
case 'docx': return 'fa-solid fa-file-word mj-file-color-word';
|
|
684
|
+
case 'xlsx': return 'fa-solid fa-file-excel mj-file-color-excel';
|
|
612
685
|
default: return 'fa-solid fa-file mj-file-color-generic';
|
|
613
686
|
}
|
|
614
687
|
}
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
const idx = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);
|
|
620
|
-
const val = bytes / Math.pow(1024, idx);
|
|
621
|
-
return `${val.toFixed(idx === 0 ? 0 : 1)} ${units[idx]}`;
|
|
688
|
+
/** The size badge's text, or null when no size is recorded: `MJ: Files` has no length column today. */
|
|
689
|
+
get FileSizeLabel() {
|
|
690
|
+
const length = this.record.ContentLength;
|
|
691
|
+
return DescribeFileSize(length);
|
|
622
692
|
}
|
|
623
693
|
OpenInExternalTab() {
|
|
624
694
|
if (this.MediaUrl) {
|
|
@@ -636,11 +706,11 @@ let MJFileFormComponentExtended = class MJFileFormComponentExtended extends MJFi
|
|
|
636
706
|
this.ViewStandardForm = !this.ViewStandardForm;
|
|
637
707
|
}
|
|
638
708
|
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵMJFileFormComponentExtended_BaseFactory; return function MJFileFormComponentExtended_Factory(__ngFactoryType__) { return (ɵMJFileFormComponentExtended_BaseFactory || (ɵMJFileFormComponentExtended_BaseFactory = i0.ɵɵgetInheritedFactory(MJFileFormComponentExtended)))(__ngFactoryType__ || MJFileFormComponentExtended); }; })(); }
|
|
639
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJFileFormComponentExtended, selectors: [["mj-file-form-extended"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 2, vars: 1, consts: [[1, "mj-file-viewer-container"], [1, "mj-file-standard-form-wrapper"], [1, "mj-file-viewer-header"], [1, "mj-file-viewer-header-left"], [1, "mj-file-viewer-icon-box"], [1, "mj-file-viewer-title-group"], [1, "mj-file-viewer-title", 3, "title"], [1, "mj-file-viewer-badges"], [1, "mj-file-badge", "mj-file-badge--type"], [1, "mj-file-badge", "mj-file-badge--size"], [1, "mj-file-badge", "mj-file-badge--status"], [1, "mj-file-viewer-header-right"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm", "title", "Open file in new browser tab"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm", 3, "click", "title"], [1, "fa-solid", "fa-circle-info"], ["type", "button", "mjButton", "", "variant", "tertiary", "size", "sm", "title", "Switch to full record editor"], [1, "mj-file-viewer-body"], [1, "mj-file-viewer-stage"], [1, "mj-file-viewer-loading-overlay"], [1, "mj-file-media-text-box"], [1, "mj-file-viewer-fallback"], [1, "mj-file-viewer-sidebar"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm", "title", "Open file in new browser tab", 3, "click"], [1, "fa-solid", "fa-arrow-up-right-from-square"], ["type", "button", "mjButton", "", "variant", "tertiary", "size", "sm", "title", "Switch to full record editor", 3, "click"], [1, "fa-solid", "fa-pen-to-square"], [3, "text"], [1, "mj-file-media-image-box", 3, "mj-file-media--hidden"], [1, "mj-file-media-image-box"], [3, "load", "error", "src", "alt"], [1, "fa-solid", "fa-file-image", "mj-file-fallback-icon"], [1, "mj-file-media-frame-box", 3, "mj-file-media--hidden"], [1, "mj-file-media-frame-box"], ["title", "Document Preview", 3, "load", "src"], [1, "fa-solid", "fa-file-pdf", "mj-file-fallback-icon"], [1, "mj-file-media-video-box", 3, "mj-file-media--hidden"], [1, "mj-file-media-video-box"], ["controls", "", "autoplay", "", 3, "loadeddata", "error", "src"], [1, "fa-solid", "fa-file-video", "mj-file-fallback-icon"], [1, "mj-file-media-audio-box", 3, "mj-file-media--hidden"], [1, "mj-file-media-audio-box"], [1, "mj-file-audio-visual-icon"], [1, "fa-solid", "fa-headphones"], ["controls", "", 3, "loadeddata", "error", "src"], [1, "fa-solid", "fa-file-audio", "mj-file-fallback-icon"], [1, "mj-file-fallback-icon"], [1, "mj-file-fallback-meta"], [1, "mj-file-fallback-desc"], ["type", "button", "mjButton", "", "variant", "primary"], ["type", "button", "mjButton", "", "variant", "primary", 3, "click"], [1, "mj-file-sidebar-header"], ["type", "button", "title", "Collapse Sidebar", 1, "mj-file-sidebar-close", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "mj-file-sidebar-content"], [1, "mj-file-sidebar-card"], [1, "mj-file-meta-row"], [1, "mj-file-meta-label"], [1, "mj-file-meta-val", "font-semibold"], [1, "mj-file-meta-val", "font-mono"], [1, "mj-file-meta-val"], [1, "mj-file-sidebar-section"], [1, "mj-file-sidebar-section-title"], [1, "fa-solid", "fa-link"], [1, "mj-file-relationship-wrapper"], [3, "Params", "NewRecordValues"], [1, "mj-file-mode-switch-bar"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent"], ["Slot", "before-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["SectionKey", "fileBasics", "SectionName", "File Basics", "Icon", "fa fa-file", 3, "Form", "FormContext"], ["FieldName", "Name", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Description", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "classificationStatus", "SectionName", "Classification & Status", "Icon", "fa fa-tags", 3, "Form", "FormContext"], ["FieldName", "CategoryID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Status", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "storageDetails", "SectionName", "Storage Details", "Icon", "fa fa-database", 3, "Form", "FormContext"], ["FieldName", "ProviderID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ProviderKey", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ContentType", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["
|
|
640
|
-
i0.ɵɵconditionalCreate(0, MJFileFormComponentExtended_Conditional_0_Template,
|
|
709
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJFileFormComponentExtended, selectors: [["mj-file-form-extended"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 2, vars: 1, consts: [[1, "mj-file-viewer-container"], [1, "mj-file-standard-form-wrapper"], [1, "mj-file-viewer-header"], [1, "mj-file-viewer-header-left"], [1, "mj-file-viewer-icon-box"], [1, "mj-file-viewer-title-group"], [1, "mj-file-viewer-title", 3, "title"], [1, "mj-file-viewer-badges"], [1, "mj-file-badge", "mj-file-badge--type"], [1, "mj-file-badge", "mj-file-badge--size"], [1, "mj-file-badge", "mj-file-badge--status"], [1, "mj-file-viewer-header-right"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm", "title", "Open file in new browser tab"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm", 3, "click", "title"], [1, "fa-solid", "fa-circle-info"], ["type", "button", "mjButton", "", "variant", "tertiary", "size", "sm", "title", "Switch to full record editor"], [1, "mj-file-viewer-body"], [1, "mj-file-viewer-stage"], [1, "mj-file-viewer-loading-overlay"], [1, "mj-file-media-text-box"], [1, "mj-file-viewer-fallback"], [1, "mj-file-viewer-sidebar"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm", "title", "Open file in new browser tab", 3, "click"], [1, "fa-solid", "fa-arrow-up-right-from-square"], ["type", "button", "mjButton", "", "variant", "tertiary", "size", "sm", "title", "Switch to full record editor", 3, "click"], [1, "fa-solid", "fa-pen-to-square"], [3, "text"], [1, "mj-file-media-image-box", 3, "mj-file-media--hidden"], [1, "mj-file-media-image-box"], [3, "load", "error", "src", "alt"], [1, "fa-solid", "fa-file-image", "mj-file-fallback-icon"], [1, "mj-file-media-frame-box", 3, "mj-file-media--hidden"], [1, "mj-file-media-frame-box"], ["title", "Document Preview", 3, "load", "src"], [1, "fa-solid", "fa-file-pdf", "mj-file-fallback-icon"], [1, "mj-file-media-video-box", 3, "mj-file-media--hidden"], [1, "mj-file-media-video-box"], ["controls", "", "autoplay", "", 3, "loadeddata", "error", "src"], [1, "fa-solid", "fa-file-video", "mj-file-fallback-icon"], [1, "mj-file-media-audio-box", 3, "mj-file-media--hidden"], [1, "mj-file-media-audio-box"], [1, "mj-file-audio-visual-icon"], [1, "fa-solid", "fa-headphones"], ["controls", "", 3, "loadeddata", "error", "src"], [1, "fa-solid", "fa-file-audio", "mj-file-fallback-icon"], [1, "mj-file-media-office-box", 3, "mj-file-media--hidden"], [1, "mj-file-media-office-box"], [3, "Loaded", "Failed", "Url"], [1, "fa-solid", "fa-file-word", "mj-file-fallback-icon"], [1, "fa-solid", "fa-file-excel", "mj-file-fallback-icon"], [1, "mj-file-fallback-icon"], [1, "mj-file-fallback-meta"], [1, "mj-file-fallback-desc"], ["type", "button", "mjButton", "", "variant", "primary"], ["type", "button", "mjButton", "", "variant", "primary", 3, "click"], [1, "mj-file-sidebar-header"], ["type", "button", "title", "Collapse Sidebar", 1, "mj-file-sidebar-close", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "mj-file-sidebar-content"], [1, "mj-file-sidebar-card"], [1, "mj-file-meta-row"], [1, "mj-file-meta-label"], [1, "mj-file-meta-val", "font-semibold"], [1, "mj-file-meta-val", "font-mono"], [1, "mj-file-meta-val"], [1, "mj-file-sidebar-section"], [1, "mj-file-sidebar-section-title"], [1, "fa-solid", "fa-link"], [1, "mj-file-relationship-wrapper"], [3, "Params", "NewRecordValues"], [1, "mj-file-mode-switch-bar"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent"], ["Slot", "before-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["SectionKey", "fileBasics", "SectionName", "File Basics", "Icon", "fa fa-file", 3, "Form", "FormContext"], ["FieldName", "Name", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Description", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "classificationStatus", "SectionName", "Classification & Status", "Icon", "fa fa-tags", 3, "Form", "FormContext"], ["FieldName", "CategoryID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Status", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "storageDetails", "SectionName", "Storage Details", "Icon", "fa fa-database", 3, "Form", "FormContext"], ["FieldName", "ProviderID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ProviderKey", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ContentType", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "mJFileEntityRecordLinks", "SectionName", "File Entity Record Links", "Icon", "fa fa-link", 3, "Form", "FormContext"], ["Slot", "after-fields", 3, "Entity", "Record", "FormComponent", "FormContext"]], template: function MJFileFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
710
|
+
i0.ɵɵconditionalCreate(0, MJFileFormComponentExtended_Conditional_0_Template, 32, 14, "div", 0)(1, MJFileFormComponentExtended_Conditional_1_Template, 21, 50, "div", 1);
|
|
641
711
|
} if (rf & 2) {
|
|
642
712
|
i0.ɵɵconditional(!ctx.ViewStandardForm ? 0 : 1);
|
|
643
|
-
} }, dependencies: [i1.MJButtonDirective, i2.MjFormFieldComponent, i2.MjCollapsiblePanelComponent, i2.MjRecordFormContainerComponent, i2.FormPanelSlotComponent, i3.LoadingComponent, i4.DatePipe], styles: [".k-pane[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface);\n}\n\n.content-margin[_ngcontent-%COMP%] {\n margin: 10px;\n}\n\n\na[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: block;\n flex-direction: column;\n background-color: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group[_ngcontent-%COMP%] {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin-bottom: 10px;\n}\n\n.k-splitter[_ngcontent-%COMP%] {\n border-width: 0px;\n}\n\n.record-form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] .record-form-row[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form[_ngcontent-%COMP%] .record-form-row[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n@media (min-width: 768px) {\n .record-form-row[_ngcontent-%COMP%] {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n\n.form-panels-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: var(--mj-bg-surface);\n}\n\n\n.form-panels-container[_ngcontent-%COMP%] > .form-card[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n.form-panels-container[_ngcontent-%COMP%] .related-entity-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n\n@media (min-width: 1400px) {\n .form-panels-container[_ngcontent-%COMP%] .related-entity-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\n overflow: hidden;\n}\n\n.collapsible-card[_ngcontent-%COMP%] {\n overflow: hidden;\n}\n\n.collapsible-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.collapsible-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header[_ngcontent-%COMP%] .collapse-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n transition: transform 0.3s ease;\n}\n\n.collapsible-body[_ngcontent-%COMP%] {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed[_ngcontent-%COMP%] {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body[_ngcontent-%COMP%] {\n padding: 24px;\n}\n\n\n.form-card.related-entity[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n\n.form-section-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-count[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-left: auto;\n font-weight: 500;\n}\n\n\n.form-card.search-hidden[_ngcontent-%COMP%] {\n display: none;\n}\n\n\n.section-count-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] .search-highlight[_ngcontent-%COMP%] {\n background-color: var(--mj-status-warning);\n color: var(--mj-text-primary);\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n\n.collapsible-title[_ngcontent-%COMP%] .row-count-badge[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n\n.collapsible-title[_ngcontent-%COMP%] .row-count-badge.zero-rows[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n}", ".mj-file-viewer-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n\n.mj-file-viewer-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 20px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n gap: 16px;\n flex-shrink: 0;\n}\n\n.mj-file-viewer-header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n min-width: 0;\n}\n\n.mj-file-viewer-icon-box[_ngcontent-%COMP%] {\n width: 38px;\n height: 38px;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.mj-file-color-pdf[_ngcontent-%COMP%] { color: var(--mj-status-danger, #ef4444); }\n.mj-file-color-image[_ngcontent-%COMP%] { color: var(--mj-status-success, #10b981); }\n.mj-file-color-video[_ngcontent-%COMP%] { color: var(--mj-status-purple, #8b5cf6); }\n.mj-file-color-audio[_ngcontent-%COMP%] { color: var(--mj-status-warning, #f59e0b); }\n.mj-file-color-text[_ngcontent-%COMP%] { color: var(--mj-status-info, #3b82f6); }\n.mj-file-color-generic[_ngcontent-%COMP%] { color: var(--mj-text-muted, #94a3b8); }\n\n.mj-file-viewer-title-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.mj-file-viewer-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.mj-file-viewer-badges[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 3px;\n}\n\n.mj-file-badge[_ngcontent-%COMP%] {\n font-size: 0.72rem;\n font-weight: 600;\n padding: 2px 7px;\n border-radius: 9999px;\n}\n\n.mj-file-badge--type[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, #e2e8f0);\n color: var(--mj-text-secondary);\n}\n\n.mj-file-badge--size[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, #e2e8f0);\n color: var(--mj-text-secondary);\n}\n\n.mj-file-badge--status[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.mj-file-viewer-header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n\n.mj-file-viewer-body[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n overflow: hidden;\n position: relative;\n}\n\n\n.mj-file-viewer-stage[_ngcontent-%COMP%] {\n flex: 1;\n position: relative;\n overflow: auto;\n background: var(--mj-bg-surface-sunken, #0f172a);\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n}\n\n.mj-file-viewer-loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n z-index: 10;\n background: var(--mj-bg-surface-sunken, #0f172a);\n display: flex;\n align-items: center;\n justify-content: center;\n transition: opacity 0.3s ease;\n}\n\n.mj-file-media--hidden[_ngcontent-%COMP%] {\n opacity: 0;\n pointer-events: none;\n}\n\n.mj-file-media-image-box[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n}\n\n.mj-file-media-image-box[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n border-radius: var(--mj-radius-md, 8px);\n box-shadow: var(--mj-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.2));\n}\n\n.mj-file-media-frame-box[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n}\n\n.mj-file-media-frame-box[_ngcontent-%COMP%] iframe[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n.mj-file-media-video-box[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n}\n\n.mj-file-media-video-box[_ngcontent-%COMP%] video[_ngcontent-%COMP%] {\n max-width: 100%;\n max-height: 100%;\n border-radius: var(--mj-radius-md, 8px);\n box-shadow: var(--mj-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.2));\n}\n\n.mj-file-media-audio-box[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 20px;\n padding: 40px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-lg, 12px);\n box-shadow: var(--mj-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n}\n\n.mj-file-audio-visual-icon[_ngcontent-%COMP%] {\n font-size: 3rem;\n color: var(--mj-status-warning, #f59e0b);\n}\n\n.mj-file-media-text-box[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n padding: 20px;\n overflow: auto;\n background: var(--mj-bg-surface);\n}\n\n.mj-file-media-text-box[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] {\n margin: 0;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 0.85rem;\n line-height: 1.5;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.mj-file-viewer-fallback[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 40px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-lg, 12px);\n border: 1px solid var(--mj-border-default);\n max-width: 480px;\n}\n\n.mj-file-fallback-icon[_ngcontent-%COMP%] {\n font-size: 3.5rem;\n margin-bottom: 14px;\n}\n\n.mj-file-viewer-fallback[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 6px 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mj-file-fallback-meta[_ngcontent-%COMP%] {\n margin: 0 0 10px 0;\n font-size: 0.82rem;\n color: var(--mj-text-secondary);\n}\n\n.mj-file-fallback-desc[_ngcontent-%COMP%] {\n margin: 0 0 18px 0;\n font-size: 0.88rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n}\n\n\n.mj-file-viewer-sidebar[_ngcontent-%COMP%] {\n width: 380px;\n flex-shrink: 0;\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.mj-file-sidebar-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 18px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.mj-file-sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.95rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.mj-file-sidebar-close[_ngcontent-%COMP%] {\n background: none;\n border: none;\n font-size: 0.95rem;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n}\n\n.mj-file-sidebar-close[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n}\n\n.mj-file-sidebar-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.mj-file-sidebar-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, #f8fafc);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n padding: 12px 14px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.mj-file-meta-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n font-size: 0.83rem;\n gap: 8px;\n}\n\n.mj-file-meta-label[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.mj-file-meta-val[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n text-align: right;\n word-break: break-all;\n}\n\n.mj-file-sidebar-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.mj-file-sidebar-section-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.88rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mj-file-relationship-wrapper[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n overflow: hidden;\n min-height: 250px;\n}\n\n\n.mj-file-standard-form-wrapper[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: auto;\n}\n\n.mj-file-mode-switch-bar[_ngcontent-%COMP%] {\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n}"] }); }
|
|
713
|
+
} }, dependencies: [i1.DocxPreviewComponent, i1.XlsxPreviewComponent, i2.MJButtonDirective, i3.MjFormFieldComponent, i3.MjCollapsiblePanelComponent, i3.MjRecordFormContainerComponent, i3.FormPanelSlotComponent, i4.LoadingComponent, i5.DatePipe], styles: [".k-pane[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface);\n}\n\n.content-margin[_ngcontent-%COMP%] {\n margin: 10px;\n}\n\n\na[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: block;\n flex-direction: column;\n background-color: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group[_ngcontent-%COMP%] {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin-bottom: 10px;\n}\n\n.k-splitter[_ngcontent-%COMP%] {\n border-width: 0px;\n}\n\n.record-form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] .record-form-row[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form[_ngcontent-%COMP%] .record-form-row[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n@media (min-width: 768px) {\n .record-form-row[_ngcontent-%COMP%] {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n\n.form-panels-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: var(--mj-bg-surface);\n}\n\n\n.form-panels-container[_ngcontent-%COMP%] > .form-card[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n.form-panels-container[_ngcontent-%COMP%] .related-entity-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n\n@media (min-width: 1400px) {\n .form-panels-container[_ngcontent-%COMP%] .related-entity-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\n overflow: hidden;\n}\n\n.collapsible-card[_ngcontent-%COMP%] {\n overflow: hidden;\n}\n\n.collapsible-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.collapsible-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header[_ngcontent-%COMP%] .collapse-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n transition: transform 0.3s ease;\n}\n\n.collapsible-body[_ngcontent-%COMP%] {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed[_ngcontent-%COMP%] {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body[_ngcontent-%COMP%] {\n padding: 24px;\n}\n\n\n.form-card.related-entity[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n\n.form-section-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-count[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-left: auto;\n font-weight: 500;\n}\n\n\n.form-card.search-hidden[_ngcontent-%COMP%] {\n display: none;\n}\n\n\n.section-count-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] .search-highlight[_ngcontent-%COMP%] {\n background-color: var(--mj-status-warning);\n color: var(--mj-text-primary);\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n\n.collapsible-title[_ngcontent-%COMP%] .row-count-badge[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n\n.collapsible-title[_ngcontent-%COMP%] .row-count-badge.zero-rows[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n}", ".mj-file-viewer-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n\n.mj-file-viewer-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 20px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n gap: 16px;\n flex-shrink: 0;\n}\n\n.mj-file-viewer-header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n min-width: 0;\n}\n\n.mj-file-viewer-icon-box[_ngcontent-%COMP%] {\n width: 38px;\n height: 38px;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.mj-file-color-pdf[_ngcontent-%COMP%] { color: var(--mj-status-danger, #ef4444); }\n.mj-file-color-image[_ngcontent-%COMP%] { color: var(--mj-status-success, #10b981); }\n.mj-file-color-video[_ngcontent-%COMP%] { color: var(--mj-status-purple, #8b5cf6); }\n.mj-file-color-audio[_ngcontent-%COMP%] { color: var(--mj-status-warning, #f59e0b); }\n.mj-file-color-text[_ngcontent-%COMP%] { color: var(--mj-status-info, #3b82f6); }\n.mj-file-color-generic[_ngcontent-%COMP%] { color: var(--mj-text-muted, #94a3b8); }\n.mj-file-color-word[_ngcontent-%COMP%] { color: var(--mj-status-info, #2b579a); }\n.mj-file-color-excel[_ngcontent-%COMP%] { color: var(--mj-status-success, #217346); }\n\n.mj-file-viewer-title-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.mj-file-viewer-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.mj-file-viewer-badges[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 3px;\n}\n\n.mj-file-badge[_ngcontent-%COMP%] {\n font-size: 0.72rem;\n font-weight: 600;\n padding: 2px 7px;\n border-radius: 9999px;\n}\n\n.mj-file-badge--type[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, #e2e8f0);\n color: var(--mj-text-secondary);\n}\n\n.mj-file-badge--size[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, #e2e8f0);\n color: var(--mj-text-secondary);\n}\n\n.mj-file-badge--status[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.mj-file-viewer-header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n\n.mj-file-viewer-body[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n overflow: hidden;\n position: relative;\n}\n\n\n.mj-file-viewer-stage[_ngcontent-%COMP%] {\n flex: 1;\n position: relative;\n overflow: auto;\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n}\n\n.mj-file-viewer-loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n z-index: 10;\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n display: flex;\n align-items: center;\n justify-content: center;\n transition: opacity 0.3s ease;\n}\n\n.mj-file-media--hidden[_ngcontent-%COMP%] {\n opacity: 0;\n pointer-events: none;\n}\n\n.mj-file-media-image-box[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n}\n\n.mj-file-media-image-box[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n border-radius: var(--mj-radius-md, 8px);\n box-shadow: var(--mj-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.2));\n}\n\n.mj-file-media-frame-box[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n}\n\n.mj-file-media-frame-box[_ngcontent-%COMP%] iframe[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n.mj-file-media-video-box[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n}\n\n.mj-file-media-video-box[_ngcontent-%COMP%] video[_ngcontent-%COMP%] {\n max-width: 100%;\n max-height: 100%;\n border-radius: var(--mj-radius-md, 8px);\n box-shadow: var(--mj-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.2));\n}\n\n.mj-file-media-audio-box[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 20px;\n padding: 40px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-lg, 12px);\n box-shadow: var(--mj-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n}\n\n.mj-file-audio-visual-icon[_ngcontent-%COMP%] {\n font-size: 3rem;\n color: var(--mj-status-warning, #f59e0b);\n}\n\n.mj-file-media-text-box[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n padding: 20px;\n overflow: auto;\n background: var(--mj-bg-surface);\n}\n\n.mj-file-media-text-box[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] {\n margin: 0;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 0.85rem;\n line-height: 1.5;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.mj-file-viewer-fallback[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 40px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-lg, 12px);\n border: 1px solid var(--mj-border-default);\n max-width: 480px;\n}\n\n.mj-file-fallback-icon[_ngcontent-%COMP%] {\n font-size: 3.5rem;\n margin-bottom: 14px;\n}\n\n.mj-file-viewer-fallback[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 6px 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mj-file-fallback-meta[_ngcontent-%COMP%] {\n margin: 0 0 10px 0;\n font-size: 0.82rem;\n color: var(--mj-text-secondary);\n}\n\n.mj-file-fallback-desc[_ngcontent-%COMP%] {\n margin: 0 0 18px 0;\n font-size: 0.88rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n}\n\n\n.mj-file-viewer-sidebar[_ngcontent-%COMP%] {\n width: 380px;\n flex-shrink: 0;\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.mj-file-sidebar-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 18px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.mj-file-sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.95rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.mj-file-sidebar-close[_ngcontent-%COMP%] {\n background: none;\n border: none;\n font-size: 0.95rem;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n}\n\n.mj-file-sidebar-close[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n}\n\n.mj-file-sidebar-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.mj-file-sidebar-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, #f8fafc);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n padding: 12px 14px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.mj-file-meta-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n font-size: 0.83rem;\n gap: 8px;\n}\n\n.mj-file-meta-label[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.mj-file-meta-val[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n text-align: right;\n word-break: break-all;\n}\n\n.mj-file-sidebar-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.mj-file-sidebar-section-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.88rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mj-file-relationship-wrapper[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n overflow: hidden;\n min-height: 250px;\n}\n\n\n.mj-file-standard-form-wrapper[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: auto;\n}\n\n.mj-file-mode-switch-bar[_ngcontent-%COMP%] {\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n\n.mj-file-media-office-box[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n.mj-file-media-office-box[_ngcontent-%COMP%] > mj-docx-preview[_ngcontent-%COMP%], \n.mj-file-media-office-box[_ngcontent-%COMP%] > mj-xlsx-preview[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: block;\n}"] }); }
|
|
644
714
|
};
|
|
645
715
|
MJFileFormComponentExtended = MJFileFormComponentExtended_1 = __decorate([
|
|
646
716
|
RegisterClass(BaseFormComponent, 'MJ: Files', 100)
|
|
@@ -648,7 +718,7 @@ MJFileFormComponentExtended = MJFileFormComponentExtended_1 = __decorate([
|
|
|
648
718
|
export { MJFileFormComponentExtended };
|
|
649
719
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJFileFormComponentExtended, [{
|
|
650
720
|
type: Component,
|
|
651
|
-
args: [{ standalone: false, selector: 'mj-file-form-extended', template: "@if (!ViewStandardForm) {\n <div class=\"mj-file-viewer-container\">\n <!-- Top Action & Info Header -->\n <header class=\"mj-file-viewer-header\">\n <div class=\"mj-file-viewer-header-left\">\n <div class=\"mj-file-viewer-icon-box\">\n <i [class]=\"FileIconClass\"></i>\n </div>\n <div class=\"mj-file-viewer-title-group\">\n <h1 class=\"mj-file-viewer-title\" [title]=\"record.Name\">{{ record.Name }}</h1>\n <div class=\"mj-file-viewer-badges\">\n <span class=\"mj-file-badge mj-file-badge--type\">{{ record.ContentType || 'Document' }}</span>\n <span class=\"mj-file-badge mj-file-badge--size\">{{ FormatFileSize(record.ContentLength) }}</span>\n @if (record.Status) {\n <span class=\"mj-file-badge mj-file-badge--status\">{{ record.Status }}</span>\n }\n </div>\n </div>\n </div>\n\n <div class=\"mj-file-viewer-header-right\">\n @if (MediaUrl) {\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"OpenInExternalTab()\" title=\"Open file in new browser tab\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n <span>Open in New Tab</span>\n </button>\n }\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"ToggleDetailsSidebar()\" [title]=\"ShowDetailsSidebar ? 'Hide Details' : 'Show Details'\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <span>{{ ShowDetailsSidebar ? 'Hide Details' : 'Details' }}</span>\n </button>\n @if (UserCanEdit) {\n <button type=\"button\" mjButton variant=\"tertiary\" size=\"sm\" (click)=\"ToggleViewMode()\" title=\"Switch to full record editor\">\n <i class=\"fa-solid fa-pen-to-square\"></i>\n <span>Edit Record</span>\n </button>\n }\n </div>\n </header>\n\n <!-- Body / Split Content Area -->\n <div class=\"mj-file-viewer-body\">\n <!-- Media Stage -->\n <main class=\"mj-file-viewer-stage\">\n @if (IsLoadingMedia || !IsMediaLoaded) {\n <div class=\"mj-file-viewer-loading-overlay\">\n <mj-loading [text]=\"'Loading ' + (record.Name || 'file') + '...'\"></mj-loading>\n </div>\n }\n\n @switch (MediaType) {\n @case ('image') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-image-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <img [src]=\"MediaUrl\" [alt]=\"record.Name\" (load)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\" />\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-image mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Image preview could not be loaded.</p>\n </div>\n }\n }\n @case ('pdf') {\n @if (SafeMediaUrl) {\n <div class=\"mj-file-media-frame-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <iframe [src]=\"SafeMediaUrl\" title=\"Document Preview\" (load)=\"OnMediaElementLoaded()\"></iframe>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-pdf mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>PDF preview could not be loaded.</p>\n </div>\n }\n }\n @case ('video') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-video-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <video controls autoplay [src]=\"MediaUrl\" (loadeddata)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\"></video>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-video mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Video preview could not be loaded.</p>\n </div>\n }\n }\n @case ('audio') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-audio-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <div class=\"mj-file-audio-visual-icon\"><i class=\"fa-solid fa-headphones\"></i></div>\n <audio controls [src]=\"MediaUrl\" (loadeddata)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\"></audio>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-audio mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Audio preview could not be loaded.</p>\n </div>\n }\n }\n @case ('text') {\n <div class=\"mj-file-media-text-box\">\n <pre><code>{{ TextContent || 'Loading text content...' }}</code></pre>\n </div>\n }\n @default {\n <div class=\"mj-file-viewer-fallback\">\n <i [class]=\"FileIconClass\" class=\"mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p class=\"mj-file-fallback-meta\">{{ record.ContentType || 'Document' }} • {{ FormatFileSize(record.ContentLength) }}</p>\n <p class=\"mj-file-fallback-desc\">{{ record.Description || 'Preview is not available for this file type.' }}</p>\n @if (MediaUrl) {\n <button type=\"button\" mjButton variant=\"primary\" (click)=\"OpenInExternalTab()\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n <span>Open in Browser</span>\n </button>\n }\n </div>\n }\n }\n </main>\n\n <!-- Details & Linked Records Sidebar -->\n @if (ShowDetailsSidebar) {\n <aside class=\"mj-file-viewer-sidebar\">\n <div class=\"mj-file-sidebar-header\">\n <h3>File Details & Links</h3>\n <button type=\"button\" class=\"mj-file-sidebar-close\" (click)=\"ToggleDetailsSidebar()\" title=\"Collapse Sidebar\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <div class=\"mj-file-sidebar-content\">\n <!-- Metadata Cards -->\n <div class=\"mj-file-sidebar-card\">\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">File Name:</span>\n <span class=\"mj-file-meta-val font-semibold\">{{ record.Name }}</span>\n </div>\n @if (record.Description) {\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Description:</span>\n <span class=\"mj-file-meta-val\">{{ record.Description }}</span>\n </div>\n }\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">MIME Type:</span>\n <span class=\"mj-file-meta-val font-mono\">{{ record.ContentType || 'Unknown' }}</span>\n </div>\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Size:</span>\n <span class=\"mj-file-meta-val\">{{ FormatFileSize(record.ContentLength) }}</span>\n </div>\n @if (record.Status) {\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Status:</span>\n <span class=\"mj-file-meta-val\">{{ record.Status }}</span>\n </div>\n }\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Created:</span>\n <span class=\"mj-file-meta-val\">{{ record.CreatedAt | date:'short' }}</span>\n </div>\n </div>\n\n <!-- Linked Records -->\n <div class=\"mj-file-sidebar-section\">\n <h4 class=\"mj-file-sidebar-section-title\">\n <i class=\"fa-solid fa-link\"></i>\n <span>Linked Records</span>\n </h4>\n <div class=\"mj-file-relationship-wrapper\">\n <mj-relationship-view \n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: File Entity Record Links', 'FileID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: File Entity Record Links', 'FileID')\">\n </mj-relationship-view>\n </div>\n </div>\n </div>\n </aside>\n }\n </div>\n </div>\n} @else {\n <div class=\"mj-file-standard-form-wrapper\">\n <div class=\"mj-file-mode-switch-bar\">\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"ToggleViewMode()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n <span>Return to File Preview</span>\n </button>\n </div>\n\n <mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- File Basics Section -->\n <mj-collapsible-panel\n SectionKey=\"fileBasics\"\n SectionName=\"File Basics\"\n Icon=\"fa fa-file\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Name\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Description\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Classification & Status Section -->\n <mj-collapsible-panel\n SectionKey=\"classificationStatus\"\n SectionName=\"Classification & Status\"\n Icon=\"fa fa-tags\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"CategoryID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Status\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Storage Details Section -->\n <mj-collapsible-panel\n SectionKey=\"storageDetails\"\n SectionName=\"Storage Details\"\n Icon=\"fa fa-database\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ProviderID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ProviderKey\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ContentType\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ContentLength\"\n Type=\"numeric\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Linked Records Section -->\n <mj-collapsible-panel\n SectionKey=\"mJFileEntityRecordLinks\"\n SectionName=\"File Entity Record Links\"\n Icon=\"fa fa-link\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-relationship-view \n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: File Entity Record Links','FileID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: File Entity Record Links','FileID')\">\n </mj-relationship-view>\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n </mj-record-form-container>\n </div>\n}\n", styles: [".k-pane {\n background-color: var(--mj-bg-surface);\n}\n\n.content-margin {\n margin: 10px;\n}\n\n\na {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon {\n margin-right: 5px;\n}\n\n.record-form {\n display: block;\n flex-direction: column;\n background-color: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\n}\n\nbutton {\n margin-right: 5px;\n}\n\n.record-form h2 {\n margin-bottom: 10px;\n}\n\n.k-splitter {\n border-width: 0px;\n}\n\n.record-form-row {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n.record-form .record-form-row > :first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form .record-form-row > span {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n@media (min-width: 768px) {\n .record-form-row {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row label {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n/* Collapsible Panel Styles */\n.form-panels-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: var(--mj-bg-surface);\n}\n\n/* All field sections take full width */\n.form-panels-container > .form-card {\n width: 100%;\n}\n\n/* Related entity grid container - responsive layout */\n.form-panels-container .related-entity-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n/* Responsive multi-column layout for related entities on wider screens */\n@media (min-width: 1400px) {\n .form-panels-container .related-entity-grid {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card {\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\n overflow: hidden;\n}\n\n.collapsible-card {\n overflow: hidden;\n}\n\n.collapsible-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.collapsible-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title i {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header .collapse-icon {\n color: var(--mj-text-muted);\n transition: transform 0.3s ease;\n}\n\n.collapsible-body {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body {\n padding: 24px;\n}\n\n/* Related Entity Sections - Visual Distinction */\n.form-card.related-entity {\n background: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-header {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-title i {\n color: var(--mj-brand-primary);\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\n}\n\n.form-section-controls .control-group {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls button {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls button:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\n}\n\n.form-section-controls button:active {\n transform: translateY(0);\n}\n\n.form-section-controls button i {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls .section-search {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls .section-search::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-left: auto;\n font-weight: 500;\n}\n\n/* Hidden sections for search filter */\n.form-card.search-hidden {\n display: none;\n}\n\n/* Section count badge */\n.section-count-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Search highlighting in section names */\n.collapsible-title h3 .search-highlight {\n background-color: var(--mj-status-warning);\n color: var(--mj-text-primary);\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n/* Row count badge in section headers */\n.collapsible-title .row-count-badge {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n/* Gray badge for zero rows (loaded but empty) */\n.collapsible-title .row-count-badge.zero-rows {\n background: var(--mj-text-muted);\n}\n", ".mj-file-viewer-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n/* Header */\n.mj-file-viewer-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 20px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n gap: 16px;\n flex-shrink: 0;\n}\n\n.mj-file-viewer-header-left {\n display: flex;\n align-items: center;\n gap: 14px;\n min-width: 0;\n}\n\n.mj-file-viewer-icon-box {\n width: 38px;\n height: 38px;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.mj-file-color-pdf { color: var(--mj-status-danger, #ef4444); }\n.mj-file-color-image { color: var(--mj-status-success, #10b981); }\n.mj-file-color-video { color: var(--mj-status-purple, #8b5cf6); }\n.mj-file-color-audio { color: var(--mj-status-warning, #f59e0b); }\n.mj-file-color-text { color: var(--mj-status-info, #3b82f6); }\n.mj-file-color-generic { color: var(--mj-text-muted, #94a3b8); }\n\n.mj-file-viewer-title-group {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.mj-file-viewer-title {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.mj-file-viewer-badges {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 3px;\n}\n\n.mj-file-badge {\n font-size: 0.72rem;\n font-weight: 600;\n padding: 2px 7px;\n border-radius: 9999px;\n}\n\n.mj-file-badge--type {\n background: var(--mj-bg-surface-sunken, #e2e8f0);\n color: var(--mj-text-secondary);\n}\n\n.mj-file-badge--size {\n background: var(--mj-bg-surface-sunken, #e2e8f0);\n color: var(--mj-text-secondary);\n}\n\n.mj-file-badge--status {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.mj-file-viewer-header-right {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n/* Body / Split View */\n.mj-file-viewer-body {\n display: flex;\n flex: 1;\n overflow: hidden;\n position: relative;\n}\n\n/* Stage (Media Preview) */\n.mj-file-viewer-stage {\n flex: 1;\n position: relative;\n overflow: auto;\n background: var(--mj-bg-surface-sunken, #0f172a);\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n}\n\n.mj-file-viewer-loading-overlay {\n position: absolute;\n inset: 0;\n z-index: 10;\n background: var(--mj-bg-surface-sunken, #0f172a);\n display: flex;\n align-items: center;\n justify-content: center;\n transition: opacity 0.3s ease;\n}\n\n.mj-file-media--hidden {\n opacity: 0;\n pointer-events: none;\n}\n\n.mj-file-media-image-box {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n}\n\n.mj-file-media-image-box img {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n border-radius: var(--mj-radius-md, 8px);\n box-shadow: var(--mj-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.2));\n}\n\n.mj-file-media-frame-box {\n width: 100%;\n height: 100%;\n}\n\n.mj-file-media-frame-box iframe {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n.mj-file-media-video-box {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n}\n\n.mj-file-media-video-box video {\n max-width: 100%;\n max-height: 100%;\n border-radius: var(--mj-radius-md, 8px);\n box-shadow: var(--mj-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.2));\n}\n\n.mj-file-media-audio-box {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 20px;\n padding: 40px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-lg, 12px);\n box-shadow: var(--mj-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n}\n\n.mj-file-audio-visual-icon {\n font-size: 3rem;\n color: var(--mj-status-warning, #f59e0b);\n}\n\n.mj-file-media-text-box {\n width: 100%;\n height: 100%;\n padding: 20px;\n overflow: auto;\n background: var(--mj-bg-surface);\n}\n\n.mj-file-media-text-box pre {\n margin: 0;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 0.85rem;\n line-height: 1.5;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.mj-file-viewer-fallback {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 40px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-lg, 12px);\n border: 1px solid var(--mj-border-default);\n max-width: 480px;\n}\n\n.mj-file-fallback-icon {\n font-size: 3.5rem;\n margin-bottom: 14px;\n}\n\n.mj-file-viewer-fallback h3 {\n margin: 0 0 6px 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mj-file-fallback-meta {\n margin: 0 0 10px 0;\n font-size: 0.82rem;\n color: var(--mj-text-secondary);\n}\n\n.mj-file-fallback-desc {\n margin: 0 0 18px 0;\n font-size: 0.88rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n}\n\n/* Sidebar */\n.mj-file-viewer-sidebar {\n width: 380px;\n flex-shrink: 0;\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.mj-file-sidebar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 18px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.mj-file-sidebar-header h3 {\n margin: 0;\n font-size: 0.95rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.mj-file-sidebar-close {\n background: none;\n border: none;\n font-size: 0.95rem;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n}\n\n.mj-file-sidebar-close:hover {\n color: var(--mj-text-primary);\n}\n\n.mj-file-sidebar-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.mj-file-sidebar-card {\n background: var(--mj-bg-surface-sunken, #f8fafc);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n padding: 12px 14px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.mj-file-meta-row {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n font-size: 0.83rem;\n gap: 8px;\n}\n\n.mj-file-meta-label {\n color: var(--mj-text-secondary);\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.mj-file-meta-val {\n color: var(--mj-text-primary);\n text-align: right;\n word-break: break-all;\n}\n\n.mj-file-sidebar-section {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.mj-file-sidebar-section-title {\n margin: 0;\n font-size: 0.88rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mj-file-relationship-wrapper {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n overflow: hidden;\n min-height: 250px;\n}\n\n/* Standard Form Wrapper */\n.mj-file-standard-form-wrapper {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: auto;\n}\n\n.mj-file-mode-switch-bar {\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n}\n"] }]
|
|
721
|
+
args: [{ standalone: false, selector: 'mj-file-form-extended', template: "@if (!ViewStandardForm) {\n <div class=\"mj-file-viewer-container\">\n <!-- Top Action & Info Header -->\n <header class=\"mj-file-viewer-header\">\n <div class=\"mj-file-viewer-header-left\">\n <div class=\"mj-file-viewer-icon-box\">\n <i [class]=\"FileIconClass\"></i>\n </div>\n <div class=\"mj-file-viewer-title-group\">\n <h1 class=\"mj-file-viewer-title\" [title]=\"record.Name\">{{ record.Name }}</h1>\n <div class=\"mj-file-viewer-badges\">\n <span class=\"mj-file-badge mj-file-badge--type\">{{ record.ContentType || 'Document' }}</span>\n @if (FileSizeLabel; as size) {\n <span class=\"mj-file-badge mj-file-badge--size\">{{ size }}</span>\n }\n @if (record.Status) {\n <span class=\"mj-file-badge mj-file-badge--status\">{{ record.Status }}</span>\n }\n </div>\n </div>\n </div>\n\n <div class=\"mj-file-viewer-header-right\">\n @if (MediaUrl) {\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"OpenInExternalTab()\" title=\"Open file in new browser tab\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n <span>Open in New Tab</span>\n </button>\n }\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"ToggleDetailsSidebar()\" [title]=\"ShowDetailsSidebar ? 'Hide Details' : 'Show Details'\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <span>{{ ShowDetailsSidebar ? 'Hide Details' : 'Details' }}</span>\n </button>\n @if (UserCanEdit) {\n <button type=\"button\" mjButton variant=\"tertiary\" size=\"sm\" (click)=\"ToggleViewMode()\" title=\"Switch to full record editor\">\n <i class=\"fa-solid fa-pen-to-square\"></i>\n <span>Edit Record</span>\n </button>\n }\n </div>\n </header>\n\n <!-- Body / Split Content Area -->\n <div class=\"mj-file-viewer-body\">\n <!-- Media Stage -->\n <main class=\"mj-file-viewer-stage\">\n @if (IsLoadingMedia || !IsMediaLoaded) {\n <div class=\"mj-file-viewer-loading-overlay\">\n <mj-loading [text]=\"'Loading ' + (record.Name || 'file') + '...'\"></mj-loading>\n </div>\n }\n\n @switch (MediaType) {\n @case ('image') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-image-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <img [src]=\"MediaUrl\" [alt]=\"record.Name\" (load)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\" />\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-image mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Image preview could not be loaded.</p>\n </div>\n }\n }\n @case ('pdf') {\n @if (SafeMediaUrl) {\n <div class=\"mj-file-media-frame-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <iframe [src]=\"SafeMediaUrl\" title=\"Document Preview\" (load)=\"OnMediaElementLoaded()\"></iframe>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-pdf mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>PDF preview could not be loaded.</p>\n </div>\n }\n }\n @case ('video') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-video-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <video controls autoplay [src]=\"MediaUrl\" (loadeddata)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\"></video>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-video mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Video preview could not be loaded.</p>\n </div>\n }\n }\n @case ('audio') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-audio-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <div class=\"mj-file-audio-visual-icon\"><i class=\"fa-solid fa-headphones\"></i></div>\n <audio controls [src]=\"MediaUrl\" (loadeddata)=\"OnMediaElementLoaded()\" (error)=\"OnMediaElementLoaded()\"></audio>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-audio mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Audio preview could not be loaded.</p>\n </div>\n }\n }\n @case ('text') {\n <div class=\"mj-file-media-text-box\">\n <pre><code>{{ TextContent || 'Loading text content...' }}</code></pre>\n </div>\n }\n @case ('docx') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-office-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <mj-docx-preview [Url]=\"MediaUrl\" (Loaded)=\"OnMediaElementLoaded()\" (Failed)=\"OnMediaElementLoaded()\"></mj-docx-preview>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-word mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Document preview could not be loaded.</p>\n </div>\n }\n }\n @case ('xlsx') {\n @if (MediaUrl) {\n <div class=\"mj-file-media-office-box\" [class.mj-file-media--hidden]=\"!IsMediaLoaded\">\n <mj-xlsx-preview [Url]=\"MediaUrl\" (Loaded)=\"OnMediaElementLoaded()\" (Failed)=\"OnMediaElementLoaded()\"></mj-xlsx-preview>\n </div>\n } @else {\n <div class=\"mj-file-viewer-fallback\">\n <i class=\"fa-solid fa-file-excel mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p>Workbook preview could not be loaded.</p>\n </div>\n }\n }\n @default {\n <div class=\"mj-file-viewer-fallback\">\n <i [class]=\"FileIconClass\" class=\"mj-file-fallback-icon\"></i>\n <h3>{{ record.Name }}</h3>\n <p class=\"mj-file-fallback-meta\">{{ record.ContentType || 'Document' }}@if (FileSizeLabel; as size) { • {{ size }}}</p>\n <p class=\"mj-file-fallback-desc\">{{ record.Description || 'Preview is not available for this file type.' }}</p>\n @if (MediaUrl) {\n <button type=\"button\" mjButton variant=\"primary\" (click)=\"OpenInExternalTab()\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n <span>Open in Browser</span>\n </button>\n }\n </div>\n }\n }\n </main>\n\n <!-- Details & Linked Records Sidebar -->\n @if (ShowDetailsSidebar) {\n <aside class=\"mj-file-viewer-sidebar\">\n <div class=\"mj-file-sidebar-header\">\n <h3>File Details & Links</h3>\n <button type=\"button\" class=\"mj-file-sidebar-close\" (click)=\"ToggleDetailsSidebar()\" title=\"Collapse Sidebar\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <div class=\"mj-file-sidebar-content\">\n <!-- Metadata Cards -->\n <div class=\"mj-file-sidebar-card\">\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">File Name:</span>\n <span class=\"mj-file-meta-val font-semibold\">{{ record.Name }}</span>\n </div>\n @if (record.Description) {\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Description:</span>\n <span class=\"mj-file-meta-val\">{{ record.Description }}</span>\n </div>\n }\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">MIME Type:</span>\n <span class=\"mj-file-meta-val font-mono\">{{ record.ContentType || 'Unknown' }}</span>\n </div>\n @if (FileSizeLabel; as size) {\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Size:</span>\n <span class=\"mj-file-meta-val\">{{ size }}</span>\n </div>\n }\n @if (record.Status) {\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Status:</span>\n <span class=\"mj-file-meta-val\">{{ record.Status }}</span>\n </div>\n }\n <div class=\"mj-file-meta-row\">\n <span class=\"mj-file-meta-label\">Created:</span>\n <span class=\"mj-file-meta-val\">{{ record.__mj_CreatedAt | date:'short' }}</span>\n </div>\n </div>\n\n <!-- Linked Records -->\n <div class=\"mj-file-sidebar-section\">\n <h4 class=\"mj-file-sidebar-section-title\">\n <i class=\"fa-solid fa-link\"></i>\n <span>Linked Records</span>\n </h4>\n <div class=\"mj-file-relationship-wrapper\">\n <mj-relationship-view \n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: File Entity Record Links', 'FileID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: File Entity Record Links', 'FileID')\">\n </mj-relationship-view>\n </div>\n </div>\n </div>\n </aside>\n }\n </div>\n </div>\n} @else {\n <div class=\"mj-file-standard-form-wrapper\">\n <div class=\"mj-file-mode-switch-bar\">\n <button type=\"button\" mjButton variant=\"secondary\" size=\"sm\" (click)=\"ToggleViewMode()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n <span>Return to File Preview</span>\n </button>\n </div>\n\n <mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- File Basics Section -->\n <mj-collapsible-panel\n SectionKey=\"fileBasics\"\n SectionName=\"File Basics\"\n Icon=\"fa fa-file\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Name\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Description\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Classification & Status Section -->\n <mj-collapsible-panel\n SectionKey=\"classificationStatus\"\n SectionName=\"Classification & Status\"\n Icon=\"fa fa-tags\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"CategoryID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Status\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Storage Details Section -->\n <mj-collapsible-panel\n SectionKey=\"storageDetails\"\n SectionName=\"Storage Details\"\n Icon=\"fa fa-database\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ProviderID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ProviderKey\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ContentType\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Linked Records Section -->\n <mj-collapsible-panel\n SectionKey=\"mJFileEntityRecordLinks\"\n SectionName=\"File Entity Record Links\"\n Icon=\"fa fa-link\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-relationship-view \n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: File Entity Record Links','FileID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: File Entity Record Links','FileID')\">\n </mj-relationship-view>\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n </mj-record-form-container>\n </div>\n}\n", styles: [".k-pane {\n background-color: var(--mj-bg-surface);\n}\n\n.content-margin {\n margin: 10px;\n}\n\n\na {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon {\n margin-right: 5px;\n}\n\n.record-form {\n display: block;\n flex-direction: column;\n background-color: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\n}\n\nbutton {\n margin-right: 5px;\n}\n\n.record-form h2 {\n margin-bottom: 10px;\n}\n\n.k-splitter {\n border-width: 0px;\n}\n\n.record-form-row {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n.record-form .record-form-row > :first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form .record-form-row > span {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n@media (min-width: 768px) {\n .record-form-row {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row label {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n/* Collapsible Panel Styles */\n.form-panels-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: var(--mj-bg-surface);\n}\n\n/* All field sections take full width */\n.form-panels-container > .form-card {\n width: 100%;\n}\n\n/* Related entity grid container - responsive layout */\n.form-panels-container .related-entity-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n/* Responsive multi-column layout for related entities on wider screens */\n@media (min-width: 1400px) {\n .form-panels-container .related-entity-grid {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card {\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\n overflow: hidden;\n}\n\n.collapsible-card {\n overflow: hidden;\n}\n\n.collapsible-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.collapsible-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title i {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header .collapse-icon {\n color: var(--mj-text-muted);\n transition: transform 0.3s ease;\n}\n\n.collapsible-body {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body {\n padding: 24px;\n}\n\n/* Related Entity Sections - Visual Distinction */\n.form-card.related-entity {\n background: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-header {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-title i {\n color: var(--mj-brand-primary);\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\n}\n\n.form-section-controls .control-group {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls button {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls button:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\n}\n\n.form-section-controls button:active {\n transform: translateY(0);\n}\n\n.form-section-controls button i {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls .section-search {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls .section-search::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-left: auto;\n font-weight: 500;\n}\n\n/* Hidden sections for search filter */\n.form-card.search-hidden {\n display: none;\n}\n\n/* Section count badge */\n.section-count-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Search highlighting in section names */\n.collapsible-title h3 .search-highlight {\n background-color: var(--mj-status-warning);\n color: var(--mj-text-primary);\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n/* Row count badge in section headers */\n.collapsible-title .row-count-badge {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n/* Gray badge for zero rows (loaded but empty) */\n.collapsible-title .row-count-badge.zero-rows {\n background: var(--mj-text-muted);\n}\n", ".mj-file-viewer-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n/* Header */\n.mj-file-viewer-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 20px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n gap: 16px;\n flex-shrink: 0;\n}\n\n.mj-file-viewer-header-left {\n display: flex;\n align-items: center;\n gap: 14px;\n min-width: 0;\n}\n\n.mj-file-viewer-icon-box {\n width: 38px;\n height: 38px;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.mj-file-color-pdf { color: var(--mj-status-danger, #ef4444); }\n.mj-file-color-image { color: var(--mj-status-success, #10b981); }\n.mj-file-color-video { color: var(--mj-status-purple, #8b5cf6); }\n.mj-file-color-audio { color: var(--mj-status-warning, #f59e0b); }\n.mj-file-color-text { color: var(--mj-status-info, #3b82f6); }\n.mj-file-color-generic { color: var(--mj-text-muted, #94a3b8); }\n.mj-file-color-word { color: var(--mj-status-info, #2b579a); }\n.mj-file-color-excel { color: var(--mj-status-success, #217346); }\n\n.mj-file-viewer-title-group {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.mj-file-viewer-title {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.mj-file-viewer-badges {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 3px;\n}\n\n.mj-file-badge {\n font-size: 0.72rem;\n font-weight: 600;\n padding: 2px 7px;\n border-radius: 9999px;\n}\n\n.mj-file-badge--type {\n background: var(--mj-bg-surface-sunken, #e2e8f0);\n color: var(--mj-text-secondary);\n}\n\n.mj-file-badge--size {\n background: var(--mj-bg-surface-sunken, #e2e8f0);\n color: var(--mj-text-secondary);\n}\n\n.mj-file-badge--status {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.mj-file-viewer-header-right {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n/* Body / Split View */\n.mj-file-viewer-body {\n display: flex;\n flex: 1;\n overflow: hidden;\n position: relative;\n}\n\n/* Stage (Media Preview) */\n.mj-file-viewer-stage {\n flex: 1;\n position: relative;\n overflow: auto;\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n}\n\n.mj-file-viewer-loading-overlay {\n position: absolute;\n inset: 0;\n z-index: 10;\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n display: flex;\n align-items: center;\n justify-content: center;\n transition: opacity 0.3s ease;\n}\n\n.mj-file-media--hidden {\n opacity: 0;\n pointer-events: none;\n}\n\n.mj-file-media-image-box {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n}\n\n.mj-file-media-image-box img {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n border-radius: var(--mj-radius-md, 8px);\n box-shadow: var(--mj-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.2));\n}\n\n.mj-file-media-frame-box {\n width: 100%;\n height: 100%;\n}\n\n.mj-file-media-frame-box iframe {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n.mj-file-media-video-box {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n}\n\n.mj-file-media-video-box video {\n max-width: 100%;\n max-height: 100%;\n border-radius: var(--mj-radius-md, 8px);\n box-shadow: var(--mj-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.2));\n}\n\n.mj-file-media-audio-box {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 20px;\n padding: 40px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-lg, 12px);\n box-shadow: var(--mj-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n}\n\n.mj-file-audio-visual-icon {\n font-size: 3rem;\n color: var(--mj-status-warning, #f59e0b);\n}\n\n.mj-file-media-text-box {\n width: 100%;\n height: 100%;\n padding: 20px;\n overflow: auto;\n background: var(--mj-bg-surface);\n}\n\n.mj-file-media-text-box pre {\n margin: 0;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 0.85rem;\n line-height: 1.5;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.mj-file-viewer-fallback {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 40px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-lg, 12px);\n border: 1px solid var(--mj-border-default);\n max-width: 480px;\n}\n\n.mj-file-fallback-icon {\n font-size: 3.5rem;\n margin-bottom: 14px;\n}\n\n.mj-file-viewer-fallback h3 {\n margin: 0 0 6px 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mj-file-fallback-meta {\n margin: 0 0 10px 0;\n font-size: 0.82rem;\n color: var(--mj-text-secondary);\n}\n\n.mj-file-fallback-desc {\n margin: 0 0 18px 0;\n font-size: 0.88rem;\n color: var(--mj-text-secondary);\n line-height: 1.4;\n}\n\n/* Sidebar */\n.mj-file-viewer-sidebar {\n width: 380px;\n flex-shrink: 0;\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.mj-file-sidebar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 18px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.mj-file-sidebar-header h3 {\n margin: 0;\n font-size: 0.95rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.mj-file-sidebar-close {\n background: none;\n border: none;\n font-size: 0.95rem;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 4px;\n}\n\n.mj-file-sidebar-close:hover {\n color: var(--mj-text-primary);\n}\n\n.mj-file-sidebar-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.mj-file-sidebar-card {\n background: var(--mj-bg-surface-sunken, #f8fafc);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n padding: 12px 14px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.mj-file-meta-row {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n font-size: 0.83rem;\n gap: 8px;\n}\n\n.mj-file-meta-label {\n color: var(--mj-text-secondary);\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.mj-file-meta-val {\n color: var(--mj-text-primary);\n text-align: right;\n word-break: break-all;\n}\n\n.mj-file-sidebar-section {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.mj-file-sidebar-section-title {\n margin: 0;\n font-size: 0.88rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mj-file-relationship-wrapper {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n overflow: hidden;\n min-height: 250px;\n}\n\n/* Standard Form Wrapper */\n.mj-file-standard-form-wrapper {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: auto;\n}\n\n.mj-file-mode-switch-bar {\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n/* Word and Excel previews fill the stage; the shared components scroll inside it */\n.mj-file-media-office-box {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n.mj-file-media-office-box > mj-docx-preview,\n.mj-file-media-office-box > mj-xlsx-preview {\n flex: 1;\n min-height: 0;\n display: block;\n}\n"] }]
|
|
652
722
|
}], null, null); })();
|
|
653
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJFileFormComponentExtended, { className: "MJFileFormComponentExtended", filePath: "src/lib/custom/Files/file-form.component.ts", lineNumber:
|
|
723
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJFileFormComponentExtended, { className: "MJFileFormComponentExtended", filePath: "src/lib/custom/Files/file-form.component.ts", lineNumber: 59 }); })();
|
|
654
724
|
//# sourceMappingURL=file-form.component.js.map
|