@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.
Files changed (179) hide show
  1. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +12 -0
  2. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +43 -26
  4. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  5. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +7 -1
  6. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  7. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +191 -178
  8. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  9. package/dist/lib/custom/AIPromptRuns/prompt-run-data-capture-note.component.d.ts +48 -0
  10. package/dist/lib/custom/AIPromptRuns/prompt-run-data-capture-note.component.d.ts.map +1 -0
  11. package/dist/lib/custom/AIPromptRuns/prompt-run-data-capture-note.component.js +195 -0
  12. package/dist/lib/custom/AIPromptRuns/prompt-run-data-capture-note.component.js.map +1 -0
  13. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +324 -322
  14. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  15. package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +16 -3
  16. package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts.map +1 -1
  17. package/dist/lib/custom/Conversations/conversation-overview.panel.js +103 -43
  18. package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
  19. package/dist/lib/custom/Entities/entity-form.component.d.ts +8 -0
  20. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  21. package/dist/lib/custom/Entities/entity-form.component.js +18 -4
  22. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  23. package/dist/lib/custom/Files/file-form.component.d.ts +5 -5
  24. package/dist/lib/custom/Files/file-form.component.d.ts.map +1 -1
  25. package/dist/lib/custom/Files/file-form.component.js +227 -157
  26. package/dist/lib/custom/Files/file-form.component.js.map +1 -1
  27. package/dist/lib/custom/Files/file-form.logic.d.ts +24 -0
  28. package/dist/lib/custom/Files/file-form.logic.d.ts.map +1 -0
  29. package/dist/lib/custom/Files/file-form.logic.js +57 -0
  30. package/dist/lib/custom/Files/file-form.logic.js.map +1 -0
  31. package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
  32. package/dist/lib/custom/Lists/list-form.component.js +3 -2
  33. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  34. package/dist/lib/custom/Queries/query-form.component.js +2 -2
  35. package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
  36. package/dist/lib/custom/RecordProcesses/record-process-form.component.js +6 -3
  37. package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
  38. package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +3 -3
  39. package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts.map +1 -1
  40. package/dist/lib/custom/SearchScopes/searchscope-form.component.js +5 -7
  41. package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
  42. package/dist/lib/custom/Templates/templates-form.component.js +2 -2
  43. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts +34 -0
  44. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts.map +1 -0
  45. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js +33 -0
  46. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js.map +1 -0
  47. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +3 -0
  48. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  49. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +261 -242
  50. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  51. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
  52. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +8 -8
  53. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
  54. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +37 -5
  55. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
  56. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +155 -79
  57. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
  58. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +8 -0
  59. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  60. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +59 -8
  61. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  62. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +34 -9
  63. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  64. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +164 -43
  65. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  66. package/dist/lib/custom/ai-agent-run/run-tree-timeline-projection.js +3 -1
  67. package/dist/lib/custom/ai-agent-run/run-tree-timeline-projection.js.map +1 -1
  68. package/dist/lib/custom/custom-forms.module.d.ts +82 -79
  69. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  70. package/dist/lib/custom/custom-forms.module.js +16 -2
  71. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  72. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
  73. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +65 -47
  74. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  75. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +115 -117
  76. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
  77. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.d.ts.map +1 -1
  78. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js +64 -24
  79. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js.map +1 -1
  80. package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js +74 -52
  81. package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js.map +1 -1
  82. package/dist/lib/generated/Entities/MJAIAgentSessionRecordingShard/mjaiagentsessionrecordingshard.form.component.d.ts +10 -0
  83. package/dist/lib/generated/Entities/MJAIAgentSessionRecordingShard/mjaiagentsessionrecordingshard.form.component.d.ts.map +1 -0
  84. package/dist/lib/generated/Entities/MJAIAgentSessionRecordingShard/mjaiagentsessionrecordingshard.form.component.js +86 -0
  85. package/dist/lib/generated/Entities/MJAIAgentSessionRecordingShard/mjaiagentsessionrecordingshard.form.component.js.map +1 -0
  86. package/dist/lib/generated/Entities/MJAIAgentUserPolicy/mjaiagentuserpolicy.form.component.d.ts +10 -0
  87. package/dist/lib/generated/Entities/MJAIAgentUserPolicy/mjaiagentuserpolicy.form.component.d.ts.map +1 -0
  88. package/dist/lib/generated/Entities/MJAIAgentUserPolicy/mjaiagentuserpolicy.form.component.js +132 -0
  89. package/dist/lib/generated/Entities/MJAIAgentUserPolicy/mjaiagentuserpolicy.form.component.js.map +1 -0
  90. package/dist/lib/generated/Entities/MJAIBridgeAgentIdentity/mjaibridgeagentidentity.form.component.js +12 -10
  91. package/dist/lib/generated/Entities/MJAIBridgeAgentIdentity/mjaibridgeagentidentity.form.component.js.map +1 -1
  92. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.d.ts.map +1 -1
  93. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +86 -32
  94. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
  95. package/dist/lib/generated/Entities/MJAIPersona/mjaipersona.form.component.d.ts.map +1 -1
  96. package/dist/lib/generated/Entities/MJAIPersona/mjaipersona.form.component.js +25 -7
  97. package/dist/lib/generated/Entities/MJAIPersona/mjaipersona.form.component.js.map +1 -1
  98. package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.d.ts.map +1 -1
  99. package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +180 -160
  100. package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js.map +1 -1
  101. package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js +16 -14
  102. package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js.map +1 -1
  103. package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js +23 -21
  104. package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js.map +1 -1
  105. package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js +21 -19
  106. package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js.map +1 -1
  107. package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js +30 -20
  108. package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js.map +1 -1
  109. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.d.ts.map +1 -1
  110. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +32 -14
  111. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
  112. package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.d.ts +10 -0
  113. package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.d.ts.map +1 -0
  114. package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.js +111 -0
  115. package/dist/lib/generated/Entities/MJConversationBranch/mjconversationbranch.form.component.js.map +1 -0
  116. package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.d.ts.map +1 -1
  117. package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js +59 -67
  118. package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js.map +1 -1
  119. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.d.ts.map +1 -1
  120. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +35 -17
  121. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
  122. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  123. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +112 -94
  124. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  125. package/dist/lib/generated/Entities/MJFeaturePipelineVersion/mjfeaturepipelineversion.form.component.d.ts +10 -0
  126. package/dist/lib/generated/Entities/MJFeaturePipelineVersion/mjfeaturepipelineversion.form.component.d.ts.map +1 -0
  127. package/dist/lib/generated/Entities/MJFeaturePipelineVersion/mjfeaturepipelineversion.form.component.js +130 -0
  128. package/dist/lib/generated/Entities/MJFeaturePipelineVersion/mjfeaturepipelineversion.form.component.js.map +1 -0
  129. package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js +26 -14
  130. package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js.map +1 -1
  131. package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.js +23 -19
  132. package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.js.map +1 -1
  133. package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js +29 -27
  134. package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js.map +1 -1
  135. package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.js +17 -15
  136. package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.js.map +1 -1
  137. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.d.ts.map +1 -1
  138. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js +27 -9
  139. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js.map +1 -1
  140. package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.d.ts +10 -0
  141. package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.d.ts.map +1 -0
  142. package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.js +106 -0
  143. package/dist/lib/generated/Entities/MJScopedNotificationConfig/mjscopednotificationconfig.form.component.js.map +1 -0
  144. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.d.ts.map +1 -1
  145. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +24 -6
  146. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
  147. package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.d.ts.map +1 -1
  148. package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js +29 -11
  149. package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js.map +1 -1
  150. package/dist/lib/generated/Entities/MJTheme/mjtheme.form.component.d.ts.map +1 -1
  151. package/dist/lib/generated/Entities/MJTheme/mjtheme.form.component.js +13 -3
  152. package/dist/lib/generated/Entities/MJTheme/mjtheme.form.component.js.map +1 -1
  153. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  154. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +788 -714
  155. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  156. package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.d.ts.map +1 -1
  157. package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js +24 -6
  158. package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js.map +1 -1
  159. package/dist/lib/generated/Entities/MJUserRoutine/mjuserroutine.form.component.js +31 -25
  160. package/dist/lib/generated/Entities/MJUserRoutine/mjuserroutine.form.component.js.map +1 -1
  161. package/dist/lib/generated/generated-forms.module.d.ts +286 -281
  162. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  163. package/dist/lib/generated/generated-forms.module.js +15 -0
  164. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  165. package/dist/lib/panels/feature-values/feature-values.logic.d.ts +55 -0
  166. package/dist/lib/panels/feature-values/feature-values.logic.d.ts.map +1 -0
  167. package/dist/lib/panels/feature-values/feature-values.logic.js +88 -0
  168. package/dist/lib/panels/feature-values/feature-values.logic.js.map +1 -0
  169. package/dist/lib/panels/feature-values/feature-values.panel.d.ts +39 -0
  170. package/dist/lib/panels/feature-values/feature-values.panel.d.ts.map +1 -0
  171. package/dist/lib/panels/feature-values/feature-values.panel.js +303 -0
  172. package/dist/lib/panels/feature-values/feature-values.panel.js.map +1 -0
  173. package/dist/lib/shared/components/template-editor.component.js +2 -2
  174. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  175. package/dist/public-api.d.ts +1 -0
  176. package/dist/public-api.d.ts.map +1 -1
  177. package/dist/public-api.js +1 -0
  178. package/dist/public-api.js.map +1 -1
  179. package/package.json +48 -47
@@ -1 +1 @@
1
- {"version":3,"file":"file-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Files/file-form.component.ts","../../../../src/lib/custom/Files/file-form.component.html"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,SAAS,EAA+C,MAAM,EAAqB,MAAM,eAAe,CAAC;AAClH,OAAO,EAAE,YAAY,EAAmB,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAgB,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAc,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;;;;;;ICMV,gCAAkD;IAAA,YAAmB;IAAA,iBAAO;;;IAA1B,cAAmB;IAAnB,0CAAmB;;;;IAQzE,kCAAgI;IAAnE,+MAAS,0BAAmB,KAAC;IACxF,wBAAsD;IACtD,4BAAM;IAAA,+BAAe;IACvB,AADuB,iBAAO,EACrB;;;;IAOT,kCAA4H;IAAhE,+MAAS,uBAAgB,KAAC;IACpF,wBAAyC;IACzC,4BAAM;IAAA,2BAAW;IACnB,AADmB,iBAAO,EACjB;;;IAUT,+BAA4C;IAC1C,iCAA+E;IACjF,iBAAM;;;IADQ,cAAqD;IAArD,0EAAqD;;;;IAQ7D,AADF,+BAAoF,cAC2B;IAAnC,AAAhC,iNAAQ,6BAAsB,KAAC,sMAAU,6BAAsB,KAAC;IAC5G,AADE,iBAA6G,EACzG;;;IAF+B,8DAA8C;IAC5E,cAAgB;IAAC,AAAjB,uDAAgB,2BAAoB;;;IAG3C,+BAAqC;IACnC,wBAA4D;IAC5D,0BAAI;IAAA,YAAiB;IAAA,iBAAK;IAC1B,yBAAG;IAAA,kDAAkC;IACvC,AADuC,iBAAI,EACrC;;;IAFA,eAAiB;IAAjB,wCAAiB;;;IAHvB,AAJF,oHAAgB,8FAIP;;;IAJT,yCAUC;;;;IAKG,AADF,+BAAoF,iBACI;IAAhC,oNAAQ,6BAAsB,KAAC;IACvF,AADwF,iBAAS,EAC3F;;;IAF+B,8DAA8C;IACzE,cAAoB;IAApB,mEAAoB;;;IAG9B,+BAAqC;IACnC,wBAA0D;IAC1D,0BAAI;IAAA,YAAiB;IAAA,iBAAK;IAC1B,yBAAG;IAAA,gDAAgC;IACrC,AADqC,iBAAI,EACnC;;;IAFA,eAAiB;IAAjB,wCAAiB;;;IAHvB,AAJF,oHAAoB,8FAIX;;;IAJT,6CAUC;;;;IAKG,AADF,+BAAoF,gBAC+B;IAAjC,AAAtC,+NAAc,6BAAsB,KAAC,wMAAU,6BAAsB,KAAC;IAClH,AADmH,iBAAQ,EACrH;;;IAF+B,8DAA8C;IACxD,cAAgB;IAAhB,uDAAgB;;;IAG3C,+BAAqC;IACnC,wBAA4D;IAC5D,0BAAI;IAAA,YAAiB;IAAA,iBAAK;IAC1B,yBAAG;IAAA,kDAAkC;IACvC,AADuC,iBAAI,EACrC;;;IAFA,eAAiB;IAAjB,wCAAiB;;;IAHvB,AAJF,oHAAgB,8FAIP;;;IAJT,yCAUC;;;;IAKG,AADF,+BAAoF,cAC3C;IAAA,wBAAsC;IAAA,iBAAM;IACnF,iCAAwG;IAAjC,AAAtC,+NAAc,6BAAsB,KAAC,wMAAU,6BAAsB,KAAC;IACzG,AAD0G,iBAAQ,EAC5G;;;IAH+B,8DAA8C;IAEjE,eAAgB;IAAhB,qCAAgB;;;IAGlC,+BAAqC;IACnC,wBAA4D;IAC5D,0BAAI;IAAA,YAAiB;IAAA,iBAAK;IAC1B,yBAAG;IAAA,kDAAkC;IACvC,AADuC,iBAAI,EACrC;;;IAFA,eAAiB;IAAjB,wCAAiB;;;IAHvB,AALF,oHAAgB,8FAKP;;;IALT,yCAWC;;;IAIM,AAAL,AADF,+BAAoC,UAC7B,WAAM;IAAA,YAA8C;IAC3D,AADkE,AAAP,iBAAO,EAAM,EAClE;;;IADO,eAA8C;IAA9C,qEAA8C;;;;IAUvD,kCAA+E;IAA9B,sNAAS,0BAAmB,KAAC;IAC5E,wBAAsD;IACtD,4BAAM;IAAA,+BAAe;IACvB,AADuB,iBAAO,EACrB;;;IATb,+BAAqC;IACnC,wBAA6D;IAC7D,0BAAI;IAAA,YAAiB;IAAA,iBAAK;IAC1B,6BAAiC;IAAA,YAAwF;IAAA,iBAAI;IAC7H,6BAAiC;IAAA,YAA0E;IAAA,iBAAI;IAC/G,uHAAgB;IAMlB,iBAAM;;;IAVD,cAAuB;IAAvB,mCAAuB;IACtB,eAAiB;IAAjB,wCAAiB;IACY,eAAwF;IAAxF,kIAAwF;IACxF,eAA0E;IAA1E,iGAA0E;IAC3G,cAKC;IALD,0CAKC;;;IAyBG,AADF,+BAA8B,eACK;IAAA,4BAAY;IAAA,iBAAO;IACpD,gCAA+B;IAAA,YAAwB;IACzD,AADyD,iBAAO,EAC1D;;;IAD2B,eAAwB;IAAxB,+CAAwB;;;IAavD,AADF,+BAA8B,eACK;IAAA,uBAAO;IAAA,iBAAO;IAC/C,gCAA+B;IAAA,YAAmB;IACpD,AADoD,iBAAO,EACrD;;;IAD2B,eAAmB;IAAnB,0CAAmB;;;;IA9BxD,AADF,AADF,iCAAsC,cACA,SAC9B;IAAA,oCAAoB;IAAA,iBAAK;IAC7B,kCAA8G;IAA1D,gNAAS,6BAAsB,KAAC;IAClF,wBAAiC;IAErC,AADE,iBAAS,EACL;IAMA,AADF,AADF,AAFF,+BAAqC,cAED,cACF,eACK;IAAA,2BAAU;IAAA,iBAAO;IAClD,iCAA6C;IAAA,aAAiB;IAChE,AADgE,iBAAO,EACjE;IACN,6HAA0B;IAOxB,AADF,gCAA8B,gBACK;IAAA,2BAAU;IAAA,iBAAO;IAClD,iCAAyC;IAAA,aAAqC;IAChF,AADgF,iBAAO,EACjF;IAEJ,AADF,gCAA8B,gBACK;IAAA,sBAAK;IAAA,iBAAO;IAC7C,iCAA+B;IAAA,aAA0C;IAC3E,AAD2E,iBAAO,EAC5E;IACN,6HAAqB;IAOnB,AADF,gCAA8B,gBACK;IAAA,yBAAQ;IAAA,iBAAO;IAChD,iCAA+B;IAAA,aAAqC;;IAExE,AADE,AADsE,iBAAO,EACvE,EACF;IAIJ,AADF,gCAAqC,cACO;IACxC,yBAAgC;IAChC,6BAAM;IAAA,+BAAc;IACtB,AADsB,iBAAO,EACxB;IACL,gCAA0C;IACxC,4CAGuB;IAI/B,AADE,AADE,AADE,iBAAM,EACF,EACF,EACA;;;IA1C6C,gBAAiB;IAAjB,wCAAiB;IAEhE,cAKC;IALD,qDAKC;IAG0C,eAAqC;IAArC,4DAAqC;IAI/C,eAA0C;IAA1C,wEAA0C;IAE3E,cAKC;IALD,gDAKC;IAGgC,eAAqC;IAArC,6EAAqC;IAYlE,eAA4F;IAC5F,AADA,iHAA4F,qFACf;;;;IA7KvF,AADF,AADF,AAFF,8BAAsC,gBAEE,aACI,aACD;IACnC,oBAA+B;IACjC,iBAAM;IAEJ,AADF,8BAAwC,YACiB;IAAA,YAAiB;IAAA,iBAAK;IAE3E,AADF,8BAAmC,cACe;IAAA,aAAsC;IAAA,iBAAO;IAC7F,gCAAgD;IAAA,aAA0C;IAAA,iBAAO;IACjG,+GAAqB;IAK3B,AADE,AADE,iBAAM,EACF,EACF;IAEN,gCAAyC;IACvC,iHAAgB;IAMhB,mCAA6J;IAAhG,gMAAS,6BAAsB,KAAC;IAC3F,yBAAuC;IACvC,6BAAM;IAAA,aAAqD;IAC7D,AAD6D,iBAAO,EAC3D;IACT,iHAAmB;IAOvB,AADE,iBAAM,EACC;IAKP,AAFF,gCAAiC,gBAEI;IACjC,8GAAwC;IAiEtC,AALA,AAdA,AAbA,AAbA,AAbA,4FAAiB,sEAaF,sEAaE,sEAaA,iFAcD,iFAKN;IAed,iBAAO;IAGP,kHAA0B;IA2D9B,AADE,iBAAM,EACF;;;;IApLK,eAAuB;IAAvB,mCAAuB;IAGO,eAAqB;IAArB,0CAAqB;IAAC,cAAiB;IAAjB,wCAAiB;IAEtB,eAAsC;IAAtC,6DAAsC;IACtC,eAA0C;IAA1C,wEAA0C;IAC1F,cAEC;IAFD,gDAEC;IAML,eAKC;IALD,2CAKC;IAC6F,cAA8D;IAA9D,mFAA8D;IAEpJ,eAAqD;IAArD,4EAAqD;IAE7D,cAKC;IALD,8CAKC;IAQD,eAIC;IAJD,0EAIC;IAED,cAyEC;IAzED,mDAAA,OAAO,qBAAP,KAAK,qBAAL,OAAO,qBAAP,OAAO,qBAAP,MAAM,WAyEL;IAIH,eAyDC;IAzDD,qDAyDC;;;;IAMD,AADF,AADF,8BAA2C,cACJ,iBACqD;IAA3B,gMAAS,uBAAgB,KAAC;IACrF,wBAAsC;IACtC,4BAAM;IAAA,sCAAsB;IAEhC,AADE,AAD8B,iBAAO,EAC5B,EACL;IAEN,oDAK4D;IAAxD,AADA,AADA,AADA,AADA,8NAAY,6BAAsB,KAAC,yNAChB,0BAAmB,KAAC,yNACpB,0BAAmB,KAAC,2NACnB,2BAAoB,KAAC,yOACd,kCAA2B,KAAC;IAEvD,yCAAuK;IAGvK,gDAKgC;IAS5B,AARA,oCAOiB,yBAQA;IACrB,iBAAuB;IAGvB,iDAKgC;IAU5B,AATA,qCAQiB,yBAQA;IACrB,iBAAuB;IAGvB,iDAKgC;IA0B5B,AARA,AARA,AATA,qCAQiB,yBAQA,yBAQA,yBAQA;IACrB,iBAAuB;IAGvB,iDAKgC;IAC5B,4CAGuB;IAC3B,iBAAuB;IAEvB,0CAAsK;IAE5K,AADE,iBAA2B,EACvB;;;IArHsB,eAAiB;IAAC,AAAlB,sCAAiB,yBAAuB;IAO1C,cAAmC;IAA+D,AAAvB,AAAlB,AAAzD,wBAAA,+CAAmC,CAAA,yBAAuC,yBAAuB,mCAA4B;IAO7I,cAAa;IACb,AADA,6BAAa,mCACc;IAEvB,cAAiB;IAKjB,AADA,AAHA,AADA,sCAAiB,mBACC,6BAGG,mCACM;IAG3B,cAAiB;IAKjB,AADA,AAHA,AADA,sCAAiB,mBACC,6BAGG,mCACM;IAS/B,cAAa;IACb,AADA,6BAAa,mCACc;IAEvB,cAAiB;IAKjB,AADA,AAHA,AADA,sCAAiB,mBACC,6BAGG,mCACM;IAI3B,cAAiB;IAKjB,AADA,AAHA,AADA,sCAAiB,mBACC,6BAGG,mCACM;IAS/B,cAAa;IACb,AADA,6BAAa,mCACc;IAEvB,cAAiB;IAKjB,AADA,AAHA,AADA,sCAAiB,mBACC,6BAGG,mCACM;IAI3B,cAAiB;IAKjB,AADA,AAHA,AADA,sCAAiB,mBACC,6BAGG,mCACM;IAG3B,cAAiB;IAKjB,AADA,AAHA,AADA,sCAAiB,mBACC,6BAGG,mCACM;IAG3B,cAAiB;IAKjB,AADA,AAHA,AADA,sCAAiB,mBACC,6BAGG,mCACM;IAS/B,cAAa;IACb,AADA,6BAAa,mCACc;IAEvB,cAA2F;IAC3F,AADA,iHAA2F,qFACf;IAIhE,cAAmC;IAA8D,AAAvB,AAAlB,AAAxD,wBAAA,+CAAmC,CAAA,yBAAsC,yBAAuB,mCAA4B;;AD7SxJ,MAAM,8BAA8B,GAAG,GAAG,CAAA;;;;;;;;;;CAUzC,CAAC;AAEF,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC/B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC1C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC/C,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;CAQ9B,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC9C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KACtC,CAAC;CACH,CAAC,CAAC;AASI,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,mBAAmB;IAA7D;;QAKE,mBAAc,GAAY,IAAI,CAAC;QAC/B,kBAAa,GAAY,KAAK,CAAC;QAC/B,aAAQ,GAAkB,IAAI,CAAC;QAC/B,iBAAY,GAA2B,IAAI,CAAC;QAC5C,gBAAW,GAAkB,IAAI,CAAC;QAClC,uBAAkB,GAAY,IAAI,CAAC;QACnC,qBAAgB,GAAY,KAAK,CAAC;QAEjC,cAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACjC,kBAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;KAqKvD;;aAhLwB,sBAAiB,GAAG,kCAAkC,AAArC,CAAsC;IAc9D,KAAK,CAAC,QAAQ;QAC5B,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAsB;QAC7C,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YACzC,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEe,WAAW;QACzB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAEO,sBAAsB;QAC5B,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,6BAA2B,CAAC,iBAAiB,CAAC,CAAC;QAChG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,kBAAkB,GAAG,KAAK,KAAK,MAAM,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;YAAE,OAAO;QAE7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,IAAI,CAAC;YACH,gFAAgF;YAChF,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,UAAU,CACtD,8BAA8B,EAC9B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAC3B,CAAC;YACF,MAAM,WAAW,GAAG,oCAAoC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAChF,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC;gBAC1H,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC;gBAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,6BAA6B;gBAC7B,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,UAAU,CACzD,mBAAmB,EACnB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAC3B,CAAC;gBACF,MAAM,cAAc,GAAG,yBAAyB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAC3E,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;oBAC7G,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;oBACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACjC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC/C,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;4BACZ,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;wBACvC,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,WAAW;oBACb,CAAC;oBACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC5B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAC;YACjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEM,oBAAoB;QACzB,IAAI,IAAI,CAAC,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAClB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAErD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QACvG,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACtE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QAC5F,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QAC5F,IACE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC3B,6DAA6D,CAAC,IAAI,CAAC,IAAI,CAAC,EACxE,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAW,aAAa;QACtB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,KAAK,OAAO,CAAC,CAAC,OAAO,4CAA4C,CAAC;YAClE,KAAK,KAAK,CAAC,CAAC,OAAO,wCAAwC,CAAC;YAC5D,KAAK,OAAO,CAAC,CAAC,OAAO,4CAA4C,CAAC;YAClE,KAAK,OAAO,CAAC,CAAC,OAAO,4CAA4C,CAAC;YAClE,KAAK,MAAM,CAAC,CAAC,OAAO,2CAA2C,CAAC;YAChE,OAAO,CAAC,CAAC,OAAO,wCAAwC,CAAC;QAC3D,CAAC;IACH,CAAC;IAEM,cAAc,CAAC,KAAgC;QACpD,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9D,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrF,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3D,CAAC;IAEM,iBAAiB;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAEM,oBAAoB;QACzB,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACnD,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CACzC,6BAA2B,CAAC,iBAAiB,EAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACxC,CAAC;IACJ,CAAC;IAEM,cAAc;QACnB,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACjD,CAAC;gSAlLU,2BAA2B,yBAA3B,2BAA2B;oEAA3B,2BAA2B;YCkItC,AA3LF,+FAAyB,yEA2LhB;;YA3LT,+CA0TC;;;ADjQY,2BAA2B;IAPvC,aAAa,CAAC,iBAAiB,EAAE,WAAW,EAAE,GAAG,CAAC;GAOtC,2BAA2B,CAmLvC;;iFAnLY,2BAA2B;cANvC,SAAS;6BACI,KAAK,YACP,uBAAuB;;kFAItB,2BAA2B","sourcesContent":["import { Component, OnInit, OnDestroy, OnChanges, SimpleChanges, inject, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { MJFileEntity, UserInfoEngine } from '@memberjunction/core-entities';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { GraphQLDataProvider, gql } from '@memberjunction/graphql-dataprovider';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJFileFormComponent } from '../../generated/Entities/MJFile/mjfile.form.component';\nimport { z } from 'zod';\n\nconst CreateMediaAccessTokenMutation = gql`\n mutation CreateMediaAccessToken($fileId: String!) {\n CreateMediaAccessToken(fileId: $fileId) {\n Success\n Token\n Url\n MimeType\n ErrorMessage\n }\n }\n`;\n\nconst CreateMediaAccessTokenMutationSchema = z.object({\n CreateMediaAccessToken: z.object({\n Success: z.boolean(),\n Token: z.string().optional().nullable(),\n Url: z.string().optional().nullable(),\n MimeType: z.string().optional().nullable(),\n ErrorMessage: z.string().optional().nullable(),\n }),\n});\n\nconst DownloadUrlMutation = gql`\n mutation DownloadUrl($fileId: String!) {\n DownloadUrl(fileId: $fileId) {\n Success\n ErrorMessage\n Url\n }\n }\n`;\n\nconst DownloadUrlMutationSchema = z.object({\n DownloadUrl: z.object({\n Success: z.boolean(),\n ErrorMessage: z.string().optional().nullable(),\n Url: z.string().optional().nullable(),\n }),\n});\n\n@RegisterClass(BaseFormComponent, 'MJ: Files', 100)\n@Component({\n standalone: false,\n selector: 'mj-file-form-extended',\n templateUrl: './file-form.component.html',\n styleUrls: ['../../../shared/form-styles.css', './file-form.component.css'],\n})\nexport class MJFileFormComponentExtended extends MJFileFormComponent implements OnInit, OnDestroy, OnChanges {\n public override record!: MJFileEntity;\n\n public static readonly PREF_SHOW_DETAILS = 'mj.fileViewer.showDetailsSidebar';\n\n public IsLoadingMedia: boolean = true;\n public IsMediaLoaded: boolean = false;\n public MediaUrl: string | null = null;\n public SafeMediaUrl: SafeResourceUrl | null = null;\n public TextContent: string | null = null;\n public ShowDetailsSidebar: boolean = true;\n public ViewStandardForm: boolean = false;\n\n private sanitizer = inject(DomSanitizer);\n private notifications = inject(MJNotificationService);\n private mediaTimer?: ReturnType<typeof setTimeout>;\n\n public override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n this.restoreUserPreferences();\n if (this.record?.ID) {\n void this.LoadMediaPreview();\n }\n }\n\n public async ngOnChanges(changes: SimpleChanges): Promise<void> {\n if (changes['record'] && this.record?.ID) {\n void this.LoadMediaPreview();\n }\n }\n\n public override ngOnDestroy(): void {\n if (this.mediaTimer) {\n clearTimeout(this.mediaTimer);\n }\n super.ngOnDestroy();\n }\n\n private restoreUserPreferences(): void {\n const saved = UserInfoEngine.Instance.GetSetting(MJFileFormComponentExtended.PREF_SHOW_DETAILS);\n if (saved !== undefined && saved !== null) {\n try {\n this.ShowDetailsSidebar = JSON.parse(saved) === true;\n } catch {\n this.ShowDetailsSidebar = saved === 'true';\n }\n }\n }\n\n /**\n * Loads the media streaming URL for inline viewing.\n */\n public async LoadMediaPreview(): Promise<void> {\n if (!this.record?.ID) return;\n\n this.IsLoadingMedia = true;\n this.IsMediaLoaded = false;\n this.MediaUrl = null;\n this.SafeMediaUrl = null;\n this.TextContent = null;\n this.cdr.markForCheck();\n\n try {\n // 1. Try CreateMediaAccessToken (supports Range headers and browser tab titles)\n const mediaResult = await GraphQLDataProvider.ExecuteGQL(\n CreateMediaAccessTokenMutation,\n { fileId: this.record.ID }\n );\n const parsedMedia = CreateMediaAccessTokenMutationSchema.safeParse(mediaResult);\n if (parsedMedia.success && parsedMedia.data.CreateMediaAccessToken.Success && parsedMedia.data.CreateMediaAccessToken.Url) {\n this.MediaUrl = parsedMedia.data.CreateMediaAccessToken.Url;\n this.SafeMediaUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.MediaUrl);\n } else {\n // 2. Fallback to DownloadUrl\n const downloadResult = await GraphQLDataProvider.ExecuteGQL(\n DownloadUrlMutation,\n { fileId: this.record.ID }\n );\n const parsedDownload = DownloadUrlMutationSchema.safeParse(downloadResult);\n if (parsedDownload.success && parsedDownload.data.DownloadUrl.Success && parsedDownload.data.DownloadUrl.Url) {\n this.MediaUrl = parsedDownload.data.DownloadUrl.Url;\n this.SafeMediaUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.MediaUrl);\n }\n }\n\n if (this.MediaUrl) {\n const mediaType = this.MediaType;\n if (mediaType === 'text') {\n try {\n const resp = await window.fetch(this.MediaUrl);\n if (resp.ok) {\n this.TextContent = await resp.text();\n }\n } catch {\n // fallback\n }\n this.IsMediaLoaded = true;\n }\n } else {\n this.IsMediaLoaded = true;\n }\n } catch (err) {\n console.error('[MJFileFormComponentExtended] Error loading media preview:', err);\n this.IsMediaLoaded = true;\n } finally {\n this.IsLoadingMedia = false;\n this.cdr.markForCheck();\n }\n }\n\n public OnMediaElementLoaded(): void {\n if (this.mediaTimer) clearTimeout(this.mediaTimer);\n this.mediaTimer = setTimeout(() => {\n this.IsMediaLoaded = true;\n this.cdr.markForCheck();\n }, 350);\n }\n\n /**\n * Determines media type category based on MIME type or file extension.\n */\n public get MediaType(): 'image' | 'pdf' | 'video' | 'audio' | 'text' | 'other' {\n const mime = (this.record?.ContentType || '').toLowerCase();\n const name = (this.record?.Name || '').toLowerCase();\n\n if (mime.startsWith('image/') || /\\.(png|jpe?g|gif|webp|svg|ico|bmp|avif)$/.test(name)) return 'image';\n if (mime === 'application/pdf' || name.endsWith('.pdf')) return 'pdf';\n if (mime.startsWith('video/') || /\\.(mp4|webm|ogg|mov|mkv|avi)$/.test(name)) return 'video';\n if (mime.startsWith('audio/') || /\\.(mp3|wav|ogg|aac|m4a|flac)$/.test(name)) return 'audio';\n if (\n mime.startsWith('text/') ||\n mime.includes('json') ||\n mime.includes('xml') ||\n mime.includes('javascript') ||\n /\\.(txt|md|csv|json|xml|yaml|yml|js|ts|html|css|sql|sh|log)$/.test(name)\n ) {\n return 'text';\n }\n return 'other';\n }\n\n public get FileIconClass(): string {\n switch (this.MediaType) {\n case 'image': return 'fa-solid fa-file-image mj-file-color-image';\n case 'pdf': return 'fa-solid fa-file-pdf mj-file-color-pdf';\n case 'video': return 'fa-solid fa-file-video mj-file-color-video';\n case 'audio': return 'fa-solid fa-file-audio mj-file-color-audio';\n case 'text': return 'fa-solid fa-file-lines mj-file-color-text';\n default: return 'fa-solid fa-file mj-file-color-generic';\n }\n }\n\n public FormatFileSize(bytes: number | null | undefined): string {\n if (bytes == null || isNaN(bytes) || bytes <= 0) return '0 B';\n const units = ['B', 'KB', 'MB', 'GB', 'TB'];\n const idx = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);\n const val = bytes / Math.pow(1024, idx);\n return `${val.toFixed(idx === 0 ? 0 : 1)} ${units[idx]}`;\n }\n\n public OpenInExternalTab(): void {\n if (this.MediaUrl) {\n window.open(this.MediaUrl, '_blank', 'noopener,noreferrer');\n } else {\n this.notifications.CreateSimpleNotification('File URL not ready', 'warning');\n }\n }\n\n public ToggleDetailsSidebar(): void {\n this.ShowDetailsSidebar = !this.ShowDetailsSidebar;\n UserInfoEngine.Instance.SetSettingDebounced(\n MJFileFormComponentExtended.PREF_SHOW_DETAILS,\n JSON.stringify(this.ShowDetailsSidebar)\n );\n }\n\n public ToggleViewMode(): void {\n this.ViewStandardForm = !this.ViewStandardForm;\n }\n}\n","@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' }} &bull; {{ 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"]}
1
+ {"version":3,"file":"file-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Files/file-form.component.ts","../../../../src/lib/custom/Files/file-form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, OnChanges, SimpleChanges, inject, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { MJFileEntity, UserInfoEngine } from '@memberjunction/core-entities';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { GraphQLDataProvider, gql } from '@memberjunction/graphql-dataprovider';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { MJFileFormComponent } from '../../generated/Entities/MJFile/mjfile.form.component';\nimport { ClassifyFileMediaType, DescribeFileSize, MediaLoadsByElement, type FileMediaType } from './file-form.logic';\nimport { z } from 'zod';\n\nconst CreateMediaAccessTokenMutation = gql`\n mutation CreateMediaAccessToken($fileId: String!) {\n CreateMediaAccessToken(fileId: $fileId) {\n Success\n Token\n Url\n MimeType\n ErrorMessage\n }\n }\n`;\n\nconst CreateMediaAccessTokenMutationSchema = z.object({\n CreateMediaAccessToken: z.object({\n Success: z.boolean(),\n Token: z.string().optional().nullable(),\n Url: z.string().optional().nullable(),\n MimeType: z.string().optional().nullable(),\n ErrorMessage: z.string().optional().nullable(),\n }),\n});\n\nconst DownloadUrlMutation = gql`\n mutation DownloadUrl($fileId: String!) {\n DownloadUrl(fileId: $fileId) {\n Success\n ErrorMessage\n Url\n }\n }\n`;\n\nconst DownloadUrlMutationSchema = z.object({\n DownloadUrl: z.object({\n Success: z.boolean(),\n ErrorMessage: z.string().optional().nullable(),\n Url: z.string().optional().nullable(),\n }),\n});\n\n@RegisterClass(BaseFormComponent, 'MJ: Files', 100)\n@Component({\n standalone: false,\n selector: 'mj-file-form-extended',\n templateUrl: './file-form.component.html',\n styleUrls: ['../../../shared/form-styles.css', './file-form.component.css'],\n})\nexport class MJFileFormComponentExtended extends MJFileFormComponent implements OnInit, OnDestroy, OnChanges {\n public override record!: MJFileEntity;\n\n public static readonly PREF_SHOW_DETAILS = 'mj.fileViewer.showDetailsSidebar';\n\n public IsLoadingMedia: boolean = true;\n public IsMediaLoaded: boolean = false;\n public MediaUrl: string | null = null;\n public SafeMediaUrl: SafeResourceUrl | null = null;\n public TextContent: string | null = null;\n public ShowDetailsSidebar: boolean = true;\n public ViewStandardForm: boolean = false;\n\n private sanitizer = inject(DomSanitizer);\n private notifications = inject(MJNotificationService);\n private mediaTimer?: ReturnType<typeof setTimeout>;\n\n public override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n this.restoreUserPreferences();\n if (this.record?.ID) {\n void this.LoadMediaPreview();\n }\n }\n\n public async ngOnChanges(changes: SimpleChanges): Promise<void> {\n if (changes['record'] && this.record?.ID) {\n void this.LoadMediaPreview();\n }\n }\n\n public override ngOnDestroy(): void {\n if (this.mediaTimer) {\n clearTimeout(this.mediaTimer);\n }\n super.ngOnDestroy();\n }\n\n private restoreUserPreferences(): void {\n const saved = UserInfoEngine.Instance.GetSetting(MJFileFormComponentExtended.PREF_SHOW_DETAILS);\n if (saved !== undefined && saved !== null) {\n try {\n this.ShowDetailsSidebar = JSON.parse(saved) === true;\n } catch {\n this.ShowDetailsSidebar = saved === 'true';\n }\n }\n }\n\n /**\n * Loads the media streaming URL for inline viewing.\n */\n public async LoadMediaPreview(): Promise<void> {\n if (!this.record?.ID) return;\n\n this.IsLoadingMedia = true;\n this.IsMediaLoaded = false;\n this.MediaUrl = null;\n this.SafeMediaUrl = null;\n this.TextContent = null;\n this.cdr.markForCheck();\n\n try {\n // 1. Try CreateMediaAccessToken (supports Range headers and browser tab titles)\n const mediaResult = await GraphQLDataProvider.ExecuteGQL(\n CreateMediaAccessTokenMutation,\n { fileId: this.record.ID }\n );\n const parsedMedia = CreateMediaAccessTokenMutationSchema.safeParse(mediaResult);\n if (parsedMedia.success && parsedMedia.data.CreateMediaAccessToken.Success && parsedMedia.data.CreateMediaAccessToken.Url) {\n this.MediaUrl = parsedMedia.data.CreateMediaAccessToken.Url;\n this.SafeMediaUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.MediaUrl);\n } else {\n // 2. Fallback to DownloadUrl\n const downloadResult = await GraphQLDataProvider.ExecuteGQL(\n DownloadUrlMutation,\n { fileId: this.record.ID }\n );\n const parsedDownload = DownloadUrlMutationSchema.safeParse(downloadResult);\n if (parsedDownload.success && parsedDownload.data.DownloadUrl.Success && parsedDownload.data.DownloadUrl.Url) {\n this.MediaUrl = parsedDownload.data.DownloadUrl.Url;\n this.SafeMediaUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.MediaUrl);\n }\n }\n\n if (this.MediaUrl) {\n const mediaType = this.MediaType;\n if (mediaType === 'text') {\n try {\n const resp = await window.fetch(this.MediaUrl);\n if (resp.ok) {\n this.TextContent = await resp.text();\n }\n } catch {\n // fallback\n }\n this.IsMediaLoaded = true;\n } else if (!MediaLoadsByElement(mediaType)) {\n // No element will fire `load` for this type: the fallback card is the view, so it is loaded now.\n // Without this the overlay stayed on \"Loading…\" for every .zip and the like (MJ#4947).\n this.IsMediaLoaded = true;\n }\n } else {\n this.IsMediaLoaded = true;\n }\n } catch (err) {\n console.error('[MJFileFormComponentExtended] Error loading media preview:', err);\n this.IsMediaLoaded = true;\n } finally {\n this.IsLoadingMedia = false;\n this.cdr.markForCheck();\n }\n }\n\n public OnMediaElementLoaded(): void {\n if (this.mediaTimer) clearTimeout(this.mediaTimer);\n this.mediaTimer = setTimeout(() => {\n this.IsMediaLoaded = true;\n this.cdr.markForCheck();\n }, 350);\n }\n\n /** The viewer's category for the file, from its MIME type or its name (`ClassifyFileMediaType`). */\n public get MediaType(): FileMediaType {\n return ClassifyFileMediaType(this.record?.ContentType, this.record?.Name);\n }\n\n public get FileIconClass(): string {\n switch (this.MediaType) {\n case 'image': return 'fa-solid fa-file-image mj-file-color-image';\n case 'pdf': return 'fa-solid fa-file-pdf mj-file-color-pdf';\n case 'video': return 'fa-solid fa-file-video mj-file-color-video';\n case 'audio': return 'fa-solid fa-file-audio mj-file-color-audio';\n case 'text': return 'fa-solid fa-file-lines mj-file-color-text';\n case 'docx': return 'fa-solid fa-file-word mj-file-color-word';\n case 'xlsx': return 'fa-solid fa-file-excel mj-file-color-excel';\n default: return 'fa-solid fa-file mj-file-color-generic';\n }\n }\n\n /** The size badge's text, or null when no size is recorded: `MJ: Files` has no length column today. */\n public get FileSizeLabel(): string | null {\n const length = (this.record as unknown as { ContentLength?: number | null }).ContentLength;\n return DescribeFileSize(length);\n }\n\n public OpenInExternalTab(): void {\n if (this.MediaUrl) {\n window.open(this.MediaUrl, '_blank', 'noopener,noreferrer');\n } else {\n this.notifications.CreateSimpleNotification('File URL not ready', 'warning');\n }\n }\n\n public ToggleDetailsSidebar(): void {\n this.ShowDetailsSidebar = !this.ShowDetailsSidebar;\n UserInfoEngine.Instance.SetSettingDebounced(\n MJFileFormComponentExtended.PREF_SHOW_DETAILS,\n JSON.stringify(this.ShowDetailsSidebar)\n );\n }\n\n public ToggleViewMode(): void {\n this.ViewStandardForm = !this.ViewStandardForm;\n }\n}\n","@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) { &bull; {{ 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"]}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Pure decisions for the Files form's viewer, kept out of the component so they can be tested on the node preset.
3
+ */
4
+ /** The viewer's media categories, from the file's MIME type or extension. */
5
+ export type FileMediaType = 'image' | 'pdf' | 'video' | 'audio' | 'text' | 'docx' | 'xlsx' | 'other';
6
+ /**
7
+ * Whether the viewer learns that a file has loaded from the element that shows it. Images, PDFs (in an iframe), video
8
+ * and audio fire `load`; the Word and Excel previews report `loaded` or `failed` themselves. Text is read by fetch, and
9
+ * any other type has no element at all: the viewer shows a fallback card for it, so the form has to mark it loaded
10
+ * itself once the URL is known, or the loading overlay never clears.
11
+ */
12
+ export declare function MediaLoadsByElement(mediaType: FileMediaType): boolean;
13
+ /**
14
+ * The viewer's category for a file, from its MIME type or its name. The name matters: the server stores anything it
15
+ * cannot stream inline as `application/octet-stream`, so a Word or Excel file is only recognisable by its extension.
16
+ * Legacy `.doc` is not `docx`: mammoth reads OOXML only, so it keeps the fallback card.
17
+ */
18
+ export declare function ClassifyFileMediaType(contentType: string | null | undefined, fileName: string | null | undefined): FileMediaType;
19
+ /**
20
+ * The size badge's text, or null when the size is not known. `MJ: Files` records no length today, so the badge is left
21
+ * out rather than reading "0 B" for every file.
22
+ */
23
+ export declare function DescribeFileSize(bytes: number | null | undefined): string | null;
24
+ //# sourceMappingURL=file-form.logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-form.logic.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Files/file-form.logic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAErG;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAErE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,CA0BhI;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAMhF"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Pure decisions for the Files form's viewer, kept out of the component so they can be tested on the node preset.
3
+ */
4
+ /**
5
+ * Whether the viewer learns that a file has loaded from the element that shows it. Images, PDFs (in an iframe), video
6
+ * and audio fire `load`; the Word and Excel previews report `loaded` or `failed` themselves. Text is read by fetch, and
7
+ * any other type has no element at all: the viewer shows a fallback card for it, so the form has to mark it loaded
8
+ * itself once the URL is known, or the loading overlay never clears.
9
+ */
10
+ export function MediaLoadsByElement(mediaType) {
11
+ return mediaType === 'image' || mediaType === 'pdf' || mediaType === 'video' || mediaType === 'audio' || mediaType === 'docx' || mediaType === 'xlsx';
12
+ }
13
+ /**
14
+ * The viewer's category for a file, from its MIME type or its name. The name matters: the server stores anything it
15
+ * cannot stream inline as `application/octet-stream`, so a Word or Excel file is only recognisable by its extension.
16
+ * Legacy `.doc` is not `docx`: mammoth reads OOXML only, so it keeps the fallback card.
17
+ */
18
+ export function ClassifyFileMediaType(contentType, fileName) {
19
+ const mime = (contentType || '').toLowerCase().split(';')[0].trim();
20
+ const name = (fileName || '').toLowerCase();
21
+ if (mime.startsWith('image/') || /\.(png|jpe?g|gif|webp|svg|ico|bmp|avif)$/.test(name))
22
+ return 'image';
23
+ if (mime === 'application/pdf' || name.endsWith('.pdf'))
24
+ return 'pdf';
25
+ if (mime.startsWith('video/') || /\.(mp4|webm|ogg|mov|mkv|avi)$/.test(name))
26
+ return 'video';
27
+ if (mime.startsWith('audio/') || /\.(mp3|wav|aac|m4a|flac)$/.test(name))
28
+ return 'audio';
29
+ if (mime === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' || name.endsWith('.docx'))
30
+ return 'docx';
31
+ if (mime === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ||
32
+ mime === 'application/vnd.ms-excel' ||
33
+ /\.(xlsx|xlsm|xls)$/.test(name)) {
34
+ return 'xlsx';
35
+ }
36
+ if (mime.startsWith('text/') ||
37
+ mime.includes('json') ||
38
+ mime.includes('xml') ||
39
+ mime.includes('javascript') ||
40
+ /\.(txt|md|csv|json|xml|yaml|yml|js|ts|html|css|sql|sh|log)$/.test(name)) {
41
+ return 'text';
42
+ }
43
+ return 'other';
44
+ }
45
+ /**
46
+ * The size badge's text, or null when the size is not known. `MJ: Files` records no length today, so the badge is left
47
+ * out rather than reading "0 B" for every file.
48
+ */
49
+ export function DescribeFileSize(bytes) {
50
+ if (bytes == null || typeof bytes !== 'number' || !Number.isFinite(bytes) || bytes < 0)
51
+ return null;
52
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
53
+ const idx = bytes === 0 ? 0 : Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);
54
+ const val = bytes / Math.pow(1024, idx);
55
+ return `${val.toFixed(idx === 0 ? 0 : 1)} ${units[idx]}`;
56
+ }
57
+ //# sourceMappingURL=file-form.logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-form.logic.js","sourceRoot":"","sources":["../../../../src/lib/custom/Files/file-form.logic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAwB;IAC1D,OAAO,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,CAAC;AACxJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAsC,EAAE,QAAmC;IAC/G,MAAM,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACvG,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5F,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACxF,IAAI,IAAI,KAAK,yEAAyE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAChI,IACE,IAAI,KAAK,mEAAmE;QAC5E,IAAI,KAAK,0BAA0B;QACnC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC/B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IACE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3B,6DAA6D,CAAC,IAAI,CAAC,IAAI,CAAC,EACxE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgC;IAC/D,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpG,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvG,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3D,CAAC","sourcesContent":["/**\n * Pure decisions for the Files form's viewer, kept out of the component so they can be tested on the node preset.\n */\n\n/** The viewer's media categories, from the file's MIME type or extension. */\nexport type FileMediaType = 'image' | 'pdf' | 'video' | 'audio' | 'text' | 'docx' | 'xlsx' | 'other';\n\n/**\n * Whether the viewer learns that a file has loaded from the element that shows it. Images, PDFs (in an iframe), video\n * and audio fire `load`; the Word and Excel previews report `loaded` or `failed` themselves. Text is read by fetch, and\n * any other type has no element at all: the viewer shows a fallback card for it, so the form has to mark it loaded\n * itself once the URL is known, or the loading overlay never clears.\n */\nexport function MediaLoadsByElement(mediaType: FileMediaType): boolean {\n return mediaType === 'image' || mediaType === 'pdf' || mediaType === 'video' || mediaType === 'audio' || mediaType === 'docx' || mediaType === 'xlsx';\n}\n\n/**\n * The viewer's category for a file, from its MIME type or its name. The name matters: the server stores anything it\n * cannot stream inline as `application/octet-stream`, so a Word or Excel file is only recognisable by its extension.\n * Legacy `.doc` is not `docx`: mammoth reads OOXML only, so it keeps the fallback card.\n */\nexport function ClassifyFileMediaType(contentType: string | null | undefined, fileName: string | null | undefined): FileMediaType {\n const mime = (contentType || '').toLowerCase().split(';')[0].trim();\n const name = (fileName || '').toLowerCase();\n\n if (mime.startsWith('image/') || /\\.(png|jpe?g|gif|webp|svg|ico|bmp|avif)$/.test(name)) return 'image';\n if (mime === 'application/pdf' || name.endsWith('.pdf')) return 'pdf';\n if (mime.startsWith('video/') || /\\.(mp4|webm|ogg|mov|mkv|avi)$/.test(name)) return 'video';\n if (mime.startsWith('audio/') || /\\.(mp3|wav|aac|m4a|flac)$/.test(name)) return 'audio';\n if (mime === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' || name.endsWith('.docx')) return 'docx';\n if (\n mime === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ||\n mime === 'application/vnd.ms-excel' ||\n /\\.(xlsx|xlsm|xls)$/.test(name)\n ) {\n return 'xlsx';\n }\n if (\n mime.startsWith('text/') ||\n mime.includes('json') ||\n mime.includes('xml') ||\n mime.includes('javascript') ||\n /\\.(txt|md|csv|json|xml|yaml|yml|js|ts|html|css|sql|sh|log)$/.test(name)\n ) {\n return 'text';\n }\n return 'other';\n}\n\n/**\n * The size badge's text, or null when the size is not known. `MJ: Files` records no length today, so the badge is left\n * out rather than reading \"0 B\" for every file.\n */\nexport function DescribeFileSize(bytes: number | null | undefined): string | null {\n if (bytes == null || typeof bytes !== 'number' || !Number.isFinite(bytes) || bytes < 0) return null;\n const units = ['B', 'KB', 'MB', 'GB', 'TB'];\n const idx = bytes === 0 ? 0 : Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);\n const val = bytes / Math.pow(1024, idx);\n return `${val.toFixed(idx === 0 ? 0 : 1)} ${units[idx]}`;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"list-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Lists/list-form.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Lists/list-form.component.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Component, ChangeDetectionStrategy, inject } from '@angular/core';
8
8
  import { Subject, debounceTime, takeUntil } from 'rxjs';
9
- import { RegisterClass, UUIDsEqual, NormalizeUUID } from '@memberjunction/global';
9
+ import { IndexByUUID, RegisterClass, UUIDsEqual, NormalizeUUID } from '@memberjunction/global';
10
10
  import { BaseFormComponent } from '@memberjunction/ng-base-forms';
11
11
  import { SharedService } from '@memberjunction/ng-shared';
12
12
  import { MJListFormComponent } from '../../generated/Entities/MJList/mjlist.form.component';
@@ -1604,8 +1604,9 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
1604
1604
  const tg = await this.metadata.CreateTransactionGroup();
1605
1605
  let queued = 0;
1606
1606
  let failedToQueue = 0;
1607
+ const itemsByID = IndexByUUID(this.ListItems, i => i.detail.ID);
1607
1608
  for (const id of this.SelectedItems) {
1608
- const item = this.ListItems.find(i => UUIDsEqual(i.detail.ID, id));
1609
+ const item = itemsByID.Get(id);
1609
1610
  if (item) {
1610
1611
  item.detail.TransactionGroup = tg;
1611
1612
  // With a TransactionGroup set, Delete() returns true once