@memberjunction/ng-core-entity-forms 6.2.0-edge.1 → 6.2.0-edge.2

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 (161) hide show
  1. package/dist/lib/custom/AIAgents/agent-form-tabs.d.ts +1 -0
  2. package/dist/lib/custom/AIAgents/agent-form-tabs.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/agent-form-tabs.js +2 -0
  4. package/dist/lib/custom/AIAgents/agent-form-tabs.js.map +1 -1
  5. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +528 -521
  6. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  7. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
  8. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +10 -16
  9. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  10. package/dist/lib/custom/AIPrompts/pending-records.d.ts +11 -0
  11. package/dist/lib/custom/AIPrompts/pending-records.d.ts.map +1 -0
  12. package/dist/lib/custom/AIPrompts/pending-records.js +21 -0
  13. package/dist/lib/custom/AIPrompts/pending-records.js.map +1 -0
  14. package/dist/lib/custom/Entities/entity-form.component.d.ts +8 -1
  15. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  16. package/dist/lib/custom/Entities/entity-form.component.js +240 -147
  17. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  18. package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts +19 -0
  19. package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
  20. package/dist/lib/custom/RecordProcesses/record-process-form.component.js +50 -8
  21. package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
  22. package/dist/lib/custom/Rubrics/evaluation-form.component.d.ts +37 -0
  23. package/dist/lib/custom/Rubrics/evaluation-form.component.d.ts.map +1 -0
  24. package/dist/lib/custom/Rubrics/evaluation-form.component.js +399 -0
  25. package/dist/lib/custom/Rubrics/evaluation-form.component.js.map +1 -0
  26. package/dist/lib/custom/Rubrics/record-forms.component.d.ts +69 -0
  27. package/dist/lib/custom/Rubrics/record-forms.component.d.ts.map +1 -0
  28. package/dist/lib/custom/Rubrics/record-forms.component.js +587 -0
  29. package/dist/lib/custom/Rubrics/record-forms.component.js.map +1 -0
  30. package/dist/lib/custom/Rubrics/rubric-form.component.d.ts +67 -0
  31. package/dist/lib/custom/Rubrics/rubric-form.component.d.ts.map +1 -0
  32. package/dist/lib/custom/Rubrics/rubric-form.component.js +534 -0
  33. package/dist/lib/custom/Rubrics/rubric-form.component.js.map +1 -0
  34. package/dist/lib/custom/Rubrics/rubric-form.panels.d.ts +25 -0
  35. package/dist/lib/custom/Rubrics/rubric-form.panels.d.ts.map +1 -0
  36. package/dist/lib/custom/Rubrics/rubric-form.panels.js +299 -0
  37. package/dist/lib/custom/Rubrics/rubric-form.panels.js.map +1 -0
  38. package/dist/lib/custom/Rubrics/scale-form.component.d.ts +31 -0
  39. package/dist/lib/custom/Rubrics/scale-form.component.d.ts.map +1 -0
  40. package/dist/lib/custom/Rubrics/scale-form.component.js +395 -0
  41. package/dist/lib/custom/Rubrics/scale-form.component.js.map +1 -0
  42. package/dist/lib/custom/Templates/templates-form.component.d.ts +13 -4
  43. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  44. package/dist/lib/custom/Templates/templates-form.component.js +110 -113
  45. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  46. package/dist/lib/custom/Tests/test-form.component.d.ts +6 -0
  47. package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
  48. package/dist/lib/custom/Tests/test-form.component.js +402 -361
  49. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  50. package/dist/lib/custom/Tests/test-suite-form.component.d.ts +5 -0
  51. package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
  52. package/dist/lib/custom/Tests/test-suite-form.component.js +704 -664
  53. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  54. package/dist/lib/custom/Users/user-overview.panel.js +1 -1
  55. package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
  56. package/dist/lib/custom/custom-forms.module.d.ts +56 -48
  57. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  58. package/dist/lib/custom/custom-forms.module.js +60 -0
  59. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  60. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
  61. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +61 -43
  62. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  63. package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.d.ts +10 -0
  64. package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.d.ts.map +1 -0
  65. package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.js +74 -0
  66. package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.js.map +1 -0
  67. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
  68. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +37 -19
  69. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
  70. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
  71. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +31 -13
  72. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  73. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  74. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +156 -84
  75. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  76. package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.d.ts +10 -0
  77. package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.d.ts.map +1 -0
  78. package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.js +62 -0
  79. package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.js.map +1 -0
  80. package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.d.ts.map +1 -1
  81. package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js +24 -6
  82. package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js.map +1 -1
  83. package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.d.ts.map +1 -1
  84. package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js +24 -16
  85. package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js.map +1 -1
  86. package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.d.ts +10 -0
  87. package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.d.ts.map +1 -0
  88. package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.js +107 -0
  89. package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.js.map +1 -0
  90. package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.d.ts +10 -0
  91. package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.d.ts.map +1 -0
  92. package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.js +74 -0
  93. package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.js.map +1 -0
  94. package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.d.ts +10 -0
  95. package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.d.ts.map +1 -0
  96. package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.js +135 -0
  97. package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.js.map +1 -0
  98. package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.d.ts +10 -0
  99. package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.d.ts.map +1 -0
  100. package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.js +87 -0
  101. package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.js.map +1 -0
  102. package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.d.ts +10 -0
  103. package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.d.ts.map +1 -0
  104. package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.js +107 -0
  105. package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.js.map +1 -0
  106. package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.d.ts +10 -0
  107. package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.d.ts.map +1 -0
  108. package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.js +155 -0
  109. package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.js.map +1 -0
  110. package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.d.ts +10 -0
  111. package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.d.ts.map +1 -0
  112. package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.js +62 -0
  113. package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.js.map +1 -0
  114. package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.d.ts +10 -0
  115. package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.d.ts.map +1 -0
  116. package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.js +183 -0
  117. package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.js.map +1 -0
  118. package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.d.ts +10 -0
  119. package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.d.ts.map +1 -0
  120. package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.js +120 -0
  121. package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.js.map +1 -0
  122. package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.d.ts +10 -0
  123. package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.d.ts.map +1 -0
  124. package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.js +107 -0
  125. package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.js.map +1 -0
  126. package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.d.ts +10 -0
  127. package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.d.ts.map +1 -0
  128. package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.js +103 -0
  129. package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.js.map +1 -0
  130. package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.d.ts +10 -0
  131. package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.d.ts.map +1 -0
  132. package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.js +171 -0
  133. package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.js.map +1 -0
  134. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.d.ts.map +1 -1
  135. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +24 -16
  136. package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
  137. package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js +27 -25
  138. package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js.map +1 -1
  139. package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.d.ts.map +1 -1
  140. package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js +19 -11
  141. package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js.map +1 -1
  142. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  143. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +172 -118
  144. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  145. package/dist/lib/generated/generated-forms.module.d.ts +436 -422
  146. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  147. package/dist/lib/generated/generated-forms.module.js +44 -2
  148. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  149. package/dist/lib/panels/record-clone/entity-clone-config-editor.component.d.ts +116 -0
  150. package/dist/lib/panels/record-clone/entity-clone-config-editor.component.d.ts.map +1 -0
  151. package/dist/lib/panels/record-clone/entity-clone-config-editor.component.js +820 -0
  152. package/dist/lib/panels/record-clone/entity-clone-config-editor.component.js.map +1 -0
  153. package/dist/lib/shared/components/template-editor.component.d.ts +25 -1
  154. package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
  155. package/dist/lib/shared/components/template-editor.component.js +67 -3
  156. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  157. package/dist/public-api.d.ts +5 -0
  158. package/dist/public-api.d.ts.map +1 -1
  159. package/dist/public-api.js +5 -0
  160. package/dist/public-api.js.map +1 -1
  161. package/package.json +47 -43
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rubric-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Rubrics/rubric-form.component.ts","../../../../src/lib/generated/Entities/MJRubric/mjrubric.form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component } from '@angular/core';\nimport { ActionParam } from '@memberjunction/actions-base';\nimport { CompositeKey, RunView } from '@memberjunction/core';\nimport { GraphQLActionClient, GraphQLDataProvider } from '@memberjunction/graphql-dataprovider';\nimport { EscapeSQLString, RegisterClass, RegisterClassEx, UUIDsEqual } from '@memberjunction/global';\nimport { BaseFormComponent, BaseFormPolicy, type FormChromeContext, type FormChromeSpec } from '@memberjunction/ng-base-forms';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { BandFromRow, NodeFields, NodeFromRow, PlanNodeSave, PlanBandSave, QueueNodeSave, PublishPreview, ScaleFromRow, VersionShownWithoutDraft, type RubricVersionCard } from '@memberjunction/ng-rubrics';\nimport type { RubricBandSnapshot, RubricNodeSnapshot, RubricScaleSnapshot, RubricVersionSnapshot } from '@memberjunction/rubrics-base';\nimport { MJRubricBandEntity, MJRubricCriterionEntity, MJRubricCriterionLevelEntity, MJRubricEntity, MJRubricVersionEntity } from '@memberjunction/core-entities';\nimport { MJRubricFormComponent } from '../../generated/Entities/MJRubric/mjrubric.form.component';\n\n/**\n * Rubric form. Loads the draft version and its criteria, hosts the author,\n * the diff, and the publish dialog, and saves what they emit.\n */\n@RegisterClass(BaseFormComponent, 'MJ: Rubrics')\n@Component({\n standalone: false,\n selector: 'mj-rubric-form',\n templateUrl: '../../generated/Entities/MJRubric/mjrubric.form.component.html',\n})\nexport class MJRubricFormComponentExtended extends MJRubricFormComponent {\n public override record!: MJRubricEntity;\n public Loading = true;\n public Nodes: RubricNodeSnapshot[] = [];\n public Scales: RubricScaleSnapshot[] = [];\n public Bands: RubricBandSnapshot[] = [];\n public Versions: Record<string, unknown>[] = [];\n public DraftId: string | null = null;\n public BaseVersion: RubricVersionSnapshot | null = null;\n public DraftVersion: RubricVersionSnapshot | null = null;\n public RequestedBump: 'Major' | 'Minor' | 'Patch' | null = null;\n public Summary = '';\n public Message = '';\n public Viewing: 'draft' | 'published' = 'draft';\n public VersionCards: RubricVersionCard[] = [];\n private nodeSaveTimer: ReturnType<typeof setTimeout> | null = null;\n private nodeSaveChain: Promise<void> = Promise.resolve();\n private disposed = false;\n\n public get PublishedLabel(): string {\n const row = this.Versions.find(item => item.Status === 'Published');\n return row ? `${row.MajorVersion}.${row.MinorVersion}.${row.PatchVersion}` : '';\n }\n\n public get NextVersion(): string {\n return this.DraftVersion ? PublishPreview(this.BaseVersion, this.DraftVersion).nextVersion ?? '' : '';\n }\n\n public get ComputedBump(): string | null {\n return this.DraftVersion ? PublishPreview(this.BaseVersion, this.DraftVersion).computedBump : null;\n }\n\n public override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n await this.LoadWorkspace();\n }\n\n public async LoadWorkspace(): Promise<void> {\n this.Loading = true;\n try {\n const rows = await this.rows('MJ: Rubric Versions', `RubricID='${this.record.ID}'`);\n this.Versions = rows;\n const draft = rows.find(row => row.Status === 'Draft') ?? null;\n this.DraftId = draft ? String(draft.ID) : null;\n this.DraftVersion = null;\n this.BaseVersion = null;\n this.Nodes = [];\n this.Bands = [];\n this.Scales = await this.loadScales();\n if (draft) {\n this.Viewing = 'draft';\n this.Nodes = await this.loadNodes(String(draft.ID));\n this.Bands = (await this.rows('MJ: Rubric Bands', `RubricVersionID='${draft.ID}'`)).map(BandFromRow);\n this.DraftVersion = this.snapshot(draft, this.Nodes, this.Bands);\n const baseId = draft.BasedOnVersionID ? String(draft.BasedOnVersionID) : null;\n const base = baseId ? rows.find(row => String(row.ID) === baseId) : rows.find(row => row.Status === 'Published');\n if (base) {\n const baseNodes = await this.loadNodes(String(base.ID));\n const baseBands = (await this.rows('MJ: Rubric Bands', `RubricVersionID='${base.ID}'`)).map(BandFromRow);\n this.BaseVersion = this.snapshot(base, baseNodes, baseBands);\n }\n } else {\n this.Viewing = 'published';\n const published = VersionShownWithoutDraft(rows);\n if (published) {\n const nodes = await this.loadNodes(String(published.ID));\n const bands = (await this.rows('MJ: Rubric Bands', `RubricVersionID='${published.ID}'`)).map(BandFromRow);\n this.Nodes = nodes;\n this.Bands = bands;\n this.BaseVersion = this.snapshot(published, nodes, bands);\n }\n }\n this.VersionCards = await this.buildVersionCards(rows);\n } finally {\n this.Loading = false;\n }\n }\n\n public OpenVersion(id: string): void {\n SharedService.Instance.OpenEntityRecord('MJ: Rubric Versions', CompositeKey.FromID(id));\n }\n\n private async buildVersionCards(versions: Record<string, unknown>[]): Promise<RubricVersionCard[]> {\n if (versions.length === 0) return [];\n const ids = versions.map(row => `'${EscapeSQLString(String(row.ID))}'`).join(', ');\n const criteria = await this.rows('MJ: Rubric Criteria', `RubricVersionID IN (${ids})`);\n const bands = await this.rows('MJ: Rubric Bands', `RubricVersionID IN (${ids})`);\n return versions.map(row => {\n const id = String(row.ID);\n const nodes = criteria.filter(item => String(item.RubricVersionID) === id);\n const versionBands = bands.filter(item => String(item.RubricVersionID) === id);\n const status = String(row.Status ?? '');\n const numbered = row.MajorVersion == null ? '' : `${row.MajorVersion}.${row.MinorVersion}.${row.PatchVersion}`;\n const label = status === 'Draft' ? `Draft${this.NextVersion ? ` · next ${this.NextVersion}` : ''}` : (numbered || status);\n return {\n id,\n status,\n label,\n bump: String(row.AppliedBump || row.ComputedBump || ''),\n threshold: row.PassThreshold == null ? '' : String(row.PassThreshold),\n criteria: nodes.filter(item => item.NodeType === 'Criterion' || item.NodeType == null).length,\n gates: nodes.filter(item => item.IsGate === true || item.IsGate === 1).length,\n bands: versionBands.map(item => String(item.Label ?? '')).filter(Boolean).join(', '),\n summary: row.ChangeSummary == null ? '' : String(row.ChangeSummary),\n };\n }).sort((left, right) => Number(left.status === 'Draft') - Number(right.status === 'Draft'));\n }\n\n public override ngOnDestroy(): void {\n this.disposed = true;\n if (this.nodeSaveTimer != null) clearTimeout(this.nodeSaveTimer);\n this.nodeSaveTimer = null;\n super.ngOnDestroy();\n }\n\n /** Keeps the open draft in memory and writes dirty criteria once typing pauses. */\n public OnNodes(nodes: RubricNodeSnapshot[]): void {\n if (!this.EditMode || this.Viewing === 'published') return;\n this.Nodes = nodes;\n if (this.DraftVersion) this.DraftVersion = { ...this.DraftVersion, nodes };\n if (!this.DraftId) return;\n const draftId = this.DraftId;\n this.nodeSaveTimer = QueueNodeSave(this.nodeSaveTimer, () => {\n this.nodeSaveTimer = null;\n this.nodeSaveChain = this.nodeSaveChain.then(() => this.persistNodes(draftId, nodes));\n });\n }\n\n private async persistNodes(draftId: string, nodes: RubricNodeSnapshot[]): Promise<void> {\n if (this.disposed || this.DraftId !== draftId || this.Viewing === 'published') return;\n try {\n const saved = await this.rows('MJ: Rubric Criteria', `RubricVersionID='${draftId}'`);\n const anchorRows = saved.length === 0 ? [] : await this.rows('MJ: Rubric Criterion Levels', `CriterionID IN (${saved.map(row => `'${String(row.ID)}'`).join(', ')})`);\n const plan = PlanNodeSave(saved.map(row => {\n const node = NodeFromRow(row, anchorRows.filter(anchor => String(anchor.CriterionID) === String(row.ID)).map(anchor => ({\n scaleLevelId: anchor.ScaleLevelID == null ? null : String(anchor.ScaleLevelID),\n anchorValue: anchor.AnchorValue == null ? null : Number(anchor.AnchorValue),\n descriptor: String(anchor.Descriptor ?? ''),\n })));\n return { id: node.id, parentId: node.parentId ?? null, fields: NodeFields(node), anchors: node.anchors ?? [] };\n }), nodes);\n for (const removedId of plan.removedIds) {\n const anchors = await this.rows('MJ: Rubric Criterion Levels', `CriterionID='${removedId}'`);\n for (const anchor of anchors) await this.remove('MJ: Rubric Criterion Levels', String(anchor.ID));\n await this.remove('MJ: Rubric Criteria', removedId);\n }\n for (const item of plan.upserts) {\n await this.write('MJ: Rubric Criteria', item.id, item.isNew, { ...item.fields, RubricVersionID: draftId });\n const source = nodes.find(node => UUIDsEqual(node.id, item.id));\n await this.saveAnchors(item.id, source?.anchors ?? []);\n }\n } catch (error) {\n this.Message = error instanceof Error ? error.message : 'Could not save the draft.';\n }\n }\n\n public async OnBands(bands: RubricBandSnapshot[]): Promise<void> {\n if (!this.EditMode || this.Viewing === 'published') return;\n this.Bands = bands;\n if (!this.DraftId) return;\n const saved = await this.rows('MJ: Rubric Bands', `RubricVersionID='${this.DraftId}'`);\n const plan = PlanBandSave(saved.map(row => String(row.ID)), bands);\n for (const id of plan.removedIds) await this.remove('MJ: Rubric Bands', id);\n for (const item of plan.upserts) await this.write('MJ: Rubric Bands', item.id, item.isNew, { ...item.fields, RubricVersionID: this.DraftId });\n if (this.DraftVersion) this.DraftVersion = { ...this.DraftVersion, bands };\n }\n\n /** Clones the highest published or retired version through Create Rubric Draft. */\n public async StartDraft(): Promise<void> {\n if (!this.EditMode) return;\n const found = await this.rows('MJ: Actions', `Name='Create Rubric Draft'`);\n const actionId = String(found[0]?.ID ?? '');\n if (!actionId) {\n this.Message = 'Create Rubric Draft was not found.';\n return;\n }\n const params: ActionParam[] = [{ Name: 'RubricID', Value: this.record.ID, Type: 'Input' }];\n const result = await new GraphQLActionClient(this.ProviderToUse as GraphQLDataProvider).RunAction(actionId, params);\n this.Message = result.Success ? 'Draft started.' : (result.Message ?? 'Could not start a draft.');\n if (result.Success) await this.LoadWorkspace();\n }\n\n public OnCancel(): void {\n if (!this.EditMode) return;\n this.RequestedBump = null;\n this.Summary = '';\n }\n\n public async OnPublish(event: { bump: string | null; summary: string }): Promise<void> {\n if (!this.EditMode || !this.DraftId) return;\n const version = await this.ProviderToUse.GetEntityObject<MJRubricVersionEntity>('MJ: Rubric Versions', this.ProviderToUse.CurrentUser);\n const loaded = await version.InnerLoad(CompositeKey.FromID(this.DraftId));\n if (!loaded) {\n this.Message = 'The draft version was not found.';\n return;\n }\n version.ChangeSummary = event.summary;\n if (event.bump === 'Major' || event.bump === 'Minor' || event.bump === 'Patch') version.RequestedBump = event.bump;\n version.Status = 'Published';\n const ok = await version.Save();\n this.Message = ok ? 'Published.' : (version.LatestResult?.Message ?? 'Publish failed.');\n await this.LoadWorkspace();\n }\n\n private async loadNodes(versionId: string): Promise<RubricNodeSnapshot[]> {\n const criteria = await this.rows('MJ: Rubric Criteria', `RubricVersionID='${versionId}'`);\n const anchors = criteria.length === 0 ? [] : await this.rows('MJ: Rubric Criterion Levels', `CriterionID IN (${criteria.map(row => `'${row.ID}'`).join(', ')})`);\n return criteria.map(row => NodeFromRow(row, anchors.filter(anchor => String(anchor.CriterionID) === String(row.ID)).map(anchor => ({\n scaleLevelId: anchor.ScaleLevelID == null ? null : String(anchor.ScaleLevelID),\n anchorValue: anchor.AnchorValue == null ? null : Number(anchor.AnchorValue),\n descriptor: String(anchor.Descriptor ?? ''),\n }))));\n }\n\n private async loadScales(): Promise<RubricScaleSnapshot[]> {\n const scales = await this.rows('MJ: Rubric Scales', '1=1');\n const loaded: RubricScaleSnapshot[] = [];\n for (const scale of scales) {\n const levels = await this.rows('MJ: Rubric Scale Levels', `ScaleID='${scale.ID}'`);\n loaded.push(ScaleFromRow(scale, levels));\n }\n return loaded;\n }\n\n private async saveAnchors(criterionId: string, anchors: NonNullable<RubricNodeSnapshot['anchors']>): Promise<void> {\n const saved = await this.rows('MJ: Rubric Criterion Levels', `CriterionID='${criterionId}'`);\n const used = new Set<string>();\n for (const anchor of anchors) {\n const match = saved.find(row => String(row.ScaleLevelID ?? '') === String(anchor.scaleLevelId ?? '') && !used.has(String(row.ID)));\n if (match) {\n used.add(String(match.ID));\n await this.write('MJ: Rubric Criterion Levels', String(match.ID), false, { Descriptor: anchor.descriptor, ScaleLevelID: anchor.scaleLevelId ?? null, AnchorValue: anchor.anchorValue ?? null });\n } else {\n const id = crypto.randomUUID();\n await this.write('MJ: Rubric Criterion Levels', id, true, { ID: id, CriterionID: criterionId, Descriptor: anchor.descriptor, ScaleLevelID: anchor.scaleLevelId ?? null, AnchorValue: anchor.anchorValue ?? null });\n }\n }\n for (const row of saved) {\n if (!used.has(String(row.ID))) await this.remove('MJ: Rubric Criterion Levels', String(row.ID));\n }\n }\n\n private async write(entityName: string, id: string, isNew: boolean, fields: Record<string, unknown>): Promise<void> {\n if (entityName === 'MJ: Rubric Criteria') return this.saveCriterion(id, isNew, fields);\n if (entityName === 'MJ: Rubric Bands') return this.saveBand(id, isNew, fields);\n if (entityName === 'MJ: Rubric Criterion Levels') return this.saveLevel(id, isNew, fields);\n throw new Error(`Cannot save ${entityName}.`);\n }\n\n private async saveCriterion(id: string, isNew: boolean, fields: Record<string, unknown>): Promise<void> {\n const row = await this.ProviderToUse.GetEntityObject<MJRubricCriterionEntity>('MJ: Rubric Criteria', this.ProviderToUse.CurrentUser);\n if (!(await this.openRow(row, id, isNew, 'criterion'))) return;\n if (isNew) row.ID = id;\n row.RubricVersionID = text(fields.RubricVersionID);\n row.ParentID = textOrNull(fields.ParentID);\n row.Key = text(fields.Key);\n row.Name = text(fields.Name);\n row.Description = textOrNull(fields.Description);\n row.Guidance = textOrNull(fields.Guidance);\n row.NodeType = fields.NodeType === 'Group' ? 'Group' : 'Criterion';\n row.ScaleID = textOrNull(fields.ScaleID);\n row.Weight = numberOrZero(fields.Weight);\n row.IsAdvisory = flag(fields.IsAdvisory);\n row.IsGate = flag(fields.IsGate);\n row.GateMinimumScore = numberOrNull(fields.GateMinimumScore);\n row.NotApplicablePolicy = policyOrNull(fields.NotApplicablePolicy);\n row.RollupMethod = rollupOrNull(fields.RollupMethod);\n row.EvidenceRequired = flag(fields.EvidenceRequired);\n row.RationaleRequired = flag(fields.RationaleRequired);\n row.Sequence = numberOrZero(fields.Sequence);\n await this.requireSave(row, 'criterion');\n }\n\n private async saveBand(id: string, isNew: boolean, fields: Record<string, unknown>): Promise<void> {\n const row = await this.ProviderToUse.GetEntityObject<MJRubricBandEntity>('MJ: Rubric Bands', this.ProviderToUse.CurrentUser);\n if (!(await this.openRow(row, id, isNew, 'band'))) return;\n if (isNew) row.ID = id;\n row.RubricVersionID = text(fields.RubricVersionID);\n row.Label = text(fields.Label);\n row.Description = textOrNull(fields.Description);\n row.MinScore = numberOrZero(fields.MinScore);\n row.MaxScore = numberOrZero(fields.MaxScore);\n row.DisplayTone = toneOrNeutral(fields.DisplayTone);\n row.Sequence = numberOrZero(fields.Sequence);\n await this.requireSave(row, 'band');\n }\n\n private async saveLevel(id: string, isNew: boolean, fields: Record<string, unknown>): Promise<void> {\n const row = await this.ProviderToUse.GetEntityObject<MJRubricCriterionLevelEntity>('MJ: Rubric Criterion Levels', this.ProviderToUse.CurrentUser);\n if (!(await this.openRow(row, id, isNew, 'anchor'))) return;\n if (isNew) row.ID = id;\n const criterionId = textOrNull(fields.CriterionID);\n if (criterionId) row.CriterionID = criterionId;\n row.ScaleLevelID = textOrNull(fields.ScaleLevelID);\n row.AnchorValue = numberOrNull(fields.AnchorValue);\n row.Descriptor = text(fields.Descriptor);\n await this.requireSave(row, 'anchor');\n }\n\n private async openRow(row: { NewRecord: () => void; InnerLoad: (key: CompositeKey) => Promise<boolean> }, id: string, isNew: boolean, label: string): Promise<boolean> {\n if (isNew) {\n row.NewRecord();\n return true;\n }\n const loaded = await row.InnerLoad(CompositeKey.FromID(id)); // first-pk-ok: callers pass only MJ: Rubric Criteria / Bands / Criterion Levels rows, all keyed by a single ID column\n if (!loaded) throw new Error(`The ${label} was not found.`);\n return true;\n }\n\n private async requireSave(row: { Save: () => Promise<boolean>; LatestResult?: { Message?: string } | null }, label: string): Promise<void> {\n if (!await row.Save()) throw new Error(row.LatestResult?.Message || `Could not save the ${label}.`);\n }\n\n private async remove(entityName: string, id: string): Promise<void> {\n const row = entityName === 'MJ: Rubric Criteria'\n ? await this.ProviderToUse.GetEntityObject<MJRubricCriterionEntity>(entityName, this.ProviderToUse.CurrentUser)\n : entityName === 'MJ: Rubric Bands'\n ? await this.ProviderToUse.GetEntityObject<MJRubricBandEntity>(entityName, this.ProviderToUse.CurrentUser)\n : await this.ProviderToUse.GetEntityObject<MJRubricCriterionLevelEntity>('MJ: Rubric Criterion Levels', this.ProviderToUse.CurrentUser);\n const loaded = await row.InnerLoad(CompositeKey.FromID(id));\n if (!loaded) throw new Error(`The ${entityName} row was not found.`);\n if (!await row.Delete()) throw new Error(row.LatestResult?.Message || `Could not delete the ${entityName} row.`);\n }\n\n private snapshot(row: Record<string, unknown>, nodes: RubricNodeSnapshot[], bands: RubricBandSnapshot[]): RubricVersionSnapshot {\n return {\n id: String(row.ID),\n rubricId: String(row.RubricID),\n majorVersion: row.MajorVersion == null ? null : Number(row.MajorVersion),\n minorVersion: row.MinorVersion == null ? null : Number(row.MinorVersion),\n patchVersion: row.PatchVersion == null ? null : Number(row.PatchVersion),\n instructions: row.Instructions == null ? null : String(row.Instructions),\n passThreshold: row.PassThreshold == null ? null : Number(row.PassThreshold),\n notApplicablePolicy: (row.NotApplicablePolicy as RubricVersionSnapshot['notApplicablePolicy']) ?? 'ExcludeAndRedistribute',\n scoreDisplayMin: row.ScoreDisplayMin == null ? 0 : Number(row.ScoreDisplayMin),\n scoreDisplayMax: row.ScoreDisplayMax == null ? 100 : Number(row.ScoreDisplayMax),\n nodes,\n scales: this.Scales,\n bands,\n };\n }\n\n private async rows(entityName: string, filter: string): Promise<Record<string, unknown>[]> {\n const view = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await view.RunView({ EntityName: entityName, ExtraFilter: filter, ResultType: 'simple', MaxRows: 500 }, this.ProviderToUse.CurrentUser);\n if (!result.Success) throw new Error(result.ErrorMessage || `Could not read ${entityName}.`);\n return (result.Results ?? []) as Record<string, unknown>[];\n }\n}\n\nfunction text(value: unknown): string {\n return value == null ? '' : String(value);\n}\n\nfunction textOrNull(value: unknown): string | null {\n if (value == null || value === '') return null;\n return String(value);\n}\n\nfunction numberOrZero(value: unknown): number {\n const parsed = Number(value ?? 0);\n return Number.isFinite(parsed) ? parsed : 0;\n}\n\nfunction numberOrNull(value: unknown): number | null {\n if (value == null || value === '') return null;\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n}\n\nfunction flag(value: unknown): boolean {\n return value === true || value === 1;\n}\n\nfunction policyOrNull(value: unknown): 'CountAsZero' | 'ExcludeAndRedistribute' | 'FailEvaluation' | 'NotAllowed' | null {\n return value === 'CountAsZero' || value === 'ExcludeAndRedistribute' || value === 'FailEvaluation' || value === 'NotAllowed' ? value : null;\n}\n\nfunction rollupOrNull(value: unknown): 'Maximum' | 'Minimum' | 'WeightedMean' | null {\n return value === 'Maximum' || value === 'Minimum' || value === 'WeightedMean' ? value : null;\n}\n\nfunction toneOrNeutral(value: unknown): 'Error' | 'Info' | 'Neutral' | 'Success' | 'Warning' {\n return value === 'Error' || value === 'Info' || value === 'Success' || value === 'Warning' ? value : 'Neutral';\n}\n\n/** The rubric record uses the left-nav rail. Each contribution is one item. */\n@RegisterClassEx(BaseFormPolicy, { key: 'MJ: Rubrics', metadata: { entity: 'MJ: Rubrics' } })\nexport class RubricFormPolicy extends BaseFormPolicy {\n public override DecorateChrome(spec: FormChromeSpec, _ctx: FormChromeContext): FormChromeSpec {\n return { ...spec, Layout: 'left-nav' };\n }\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 <!-- ========================================\n FIELD PANELS\n ======================================== -->\n <!-- Details Section -->\n <mj-collapsible-panel\n SectionKey=\"details\"\n SectionName=\"Details\"\n Icon=\"fa fa-align-left\"\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-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=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\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=\"__mj_UpdatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\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\n <!-- ========================================\n RELATED ENTITY PANELS\n ======================================== -->\n\n <!-- Tests Section -->\n <mj-collapsible-panel\n SectionKey=\"mJTests\"\n SectionName=\"Tests\"\n Icon=\"fa fa-vial\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJTests')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Tests','RubricID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Tests','RubricID')\"\n [AllowLoad]=\"IsSectionExpanded('mJTests')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJTests', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Rubric Versions Section -->\n <mj-collapsible-panel\n SectionKey=\"mJRubricVersions\"\n SectionName=\"Rubric Versions\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJRubricVersions')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Rubric Versions','RubricID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Rubric Versions','RubricID')\"\n [AllowLoad]=\"IsSectionExpanded('mJRubricVersions')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJRubricVersions', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Test Suites Section -->\n <mj-collapsible-panel\n SectionKey=\"mJTestSuites\"\n SectionName=\"Test Suites\"\n Icon=\"fa fa-flask\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJTestSuites')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Test Suites','RubricID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Test Suites','RubricID')\"\n [AllowLoad]=\"IsSectionExpanded('mJTestSuites')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJTestSuites', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- AI Agent Rubrics Section -->\n <mj-collapsible-panel\n SectionKey=\"mJAIAgentRubrics\"\n SectionName=\"AI Agent Rubrics\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJAIAgentRubrics')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: AI Agent Rubrics','RubricID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: AI Agent Rubrics','RubricID')\"\n [AllowLoad]=\"IsSectionExpanded('mJAIAgentRubrics')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJAIAgentRubrics', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n</mj-record-form-container>\n "]}
@@ -0,0 +1,25 @@
1
+ import { BaseFormPanel } from '@memberjunction/ng-base-forms';
2
+ import { MJRubricEntity } from '@memberjunction/core-entities';
3
+ import { MJRubricFormComponentExtended } from './rubric-form.component';
4
+ import * as i0 from "@angular/core";
5
+ export declare class RubricAuthorPanel extends BaseFormPanel<MJRubricEntity> {
6
+ get Form(): MJRubricFormComponentExtended;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<RubricAuthorPanel, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<RubricAuthorPanel, "mj-rubric-author-panel", never, {}, {}, never, never, true, never>;
9
+ }
10
+ export declare class RubricDiffPanel extends BaseFormPanel<MJRubricEntity> {
11
+ get Form(): MJRubricFormComponentExtended;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<RubricDiffPanel, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<RubricDiffPanel, "mj-rubric-diff-panel", never, {}, {}, never, never, true, never>;
14
+ }
15
+ export declare class RubricPublishPanel extends BaseFormPanel<MJRubricEntity> {
16
+ get Form(): MJRubricFormComponentExtended;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<RubricPublishPanel, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<RubricPublishPanel, "mj-rubric-publish-panel", never, {}, {}, never, never, true, never>;
19
+ }
20
+ export declare class RubricVersionsPanel extends BaseFormPanel<MJRubricEntity> {
21
+ get Form(): MJRubricFormComponentExtended;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<RubricVersionsPanel, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<RubricVersionsPanel, "mj-rubric-versions-panel", never, {}, {}, never, never, true, never>;
24
+ }
25
+ //# sourceMappingURL=rubric-form.panels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rubric-form.panels.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Rubrics/rubric-form.panels.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAmB,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;;AAOxE,qBA4Ba,iBAAkB,SAAQ,aAAa,CAAC,cAAc,CAAC;IAChE,IAAW,IAAI,IAAI,6BAA6B,CAAuB;yCAD9D,iBAAiB;2CAAjB,iBAAiB;CAE7B;AAED,qBAwBa,eAAgB,SAAQ,aAAa,CAAC,cAAc,CAAC;IAC9D,IAAW,IAAI,IAAI,6BAA6B,CAAuB;yCAD9D,eAAe;2CAAf,eAAe;CAE3B;AAED,qBAiCa,kBAAmB,SAAQ,aAAa,CAAC,cAAc,CAAC;IACjE,IAAW,IAAI,IAAI,6BAA6B,CAAuB;yCAD9D,kBAAkB;2CAAlB,kBAAkB;CAE9B;AAED,qBAoBa,mBAAoB,SAAQ,aAAa,CAAC,cAAc,CAAC;IAClE,IAAW,IAAI,IAAI,6BAA6B,CAAuB;yCAD9D,mBAAmB;2CAAnB,mBAAmB;CAE/B"}
@@ -0,0 +1,299 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component } from '@angular/core';
8
+ import { RegisterClassEx } from '@memberjunction/global';
9
+ import { BaseFormPanel, BaseFormsModule } from '@memberjunction/ng-base-forms';
10
+ import { SharedGenericModule } from '@memberjunction/ng-shared-generic';
11
+ import { MJButtonDirective } from '@memberjunction/ng-ui-components';
12
+ import { RubricBuilderComponent, RubricPublishDialogComponent, RubricVersionBoardComponent, RubricVersionDiffComponent } from '@memberjunction/ng-rubrics';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@memberjunction/ng-base-forms";
15
+ import * as i2 from "@memberjunction/ng-shared-generic";
16
+ const _c0 = () => [];
17
+ function RubricAuthorPanel_Conditional_1_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵelement(0, "mj-loading", 1);
19
+ } }
20
+ function RubricAuthorPanel_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
21
+ const _r2 = i0.ɵɵgetCurrentView();
22
+ i0.ɵɵelementStart(0, "button", 4);
23
+ i0.ɵɵlistener("click", function RubricAuthorPanel_Conditional_2_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.Form.StartDraft()); });
24
+ i0.ɵɵtext(1, "Start new draft");
25
+ i0.ɵɵelementEnd();
26
+ } }
27
+ function RubricAuthorPanel_Conditional_2_Template(rf, ctx) { if (rf & 1) {
28
+ const _r1 = i0.ɵɵgetCurrentView();
29
+ i0.ɵɵconditionalCreate(0, RubricAuthorPanel_Conditional_2_Conditional_0_Template, 2, 0, "button", 2);
30
+ i0.ɵɵelementStart(1, "mj-rubric-builder", 3);
31
+ i0.ɵɵlistener("ViewingChange", function RubricAuthorPanel_Conditional_2_Template_mj_rubric_builder_ViewingChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.Form.Viewing = $event); })("NodesChange", function RubricAuthorPanel_Conditional_2_Template_mj_rubric_builder_NodesChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.Form.OnNodes($event)); })("BandsChange", function RubricAuthorPanel_Conditional_2_Template_mj_rubric_builder_BandsChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.Form.OnBands($event)); });
32
+ i0.ɵɵelementEnd();
33
+ } if (rf & 2) {
34
+ const ctx_r2 = i0.ɵɵnextContext();
35
+ i0.ɵɵconditional(!ctx_r2.Form.DraftId && ctx_r2.Form.EditMode ? 0 : -1);
36
+ i0.ɵɵadvance();
37
+ i0.ɵɵproperty("Name", ctx_r2.Record.Name)("PublishedLabel", ctx_r2.Form.PublishedLabel)("NextVersion", ctx_r2.Form.NextVersion)("ComputedBump", ctx_r2.Form.ComputedBump)("Viewing", ctx_r2.Form.Viewing)("Nodes", ctx_r2.Form.Viewing === "published" ? (ctx_r2.Form.BaseVersion == null ? null : ctx_r2.Form.BaseVersion.nodes) ?? i0.ɵɵpureFunction0(12, _c0) : ctx_r2.Form.Nodes)("Scales", ctx_r2.Form.Scales)("Bands", ctx_r2.Form.Viewing === "published" ? (ctx_r2.Form.BaseVersion == null ? null : ctx_r2.Form.BaseVersion.bands) ?? i0.ɵɵpureFunction0(13, _c0) : ctx_r2.Form.Bands)("BaseBands", (ctx_r2.Form.BaseVersion == null ? null : ctx_r2.Form.BaseVersion.bands) ?? i0.ɵɵpureFunction0(14, _c0))("Version", ctx_r2.Form.Viewing === "published" ? ctx_r2.Form.BaseVersion : ctx_r2.Form.DraftVersion)("ReadOnly", !ctx_r2.Form.EditMode || !ctx_r2.Form.DraftId || ctx_r2.Form.Viewing === "published");
38
+ } }
39
+ function RubricDiffPanel_Conditional_1_Template(rf, ctx) { if (rf & 1) {
40
+ i0.ɵɵelement(0, "mj-rubric-version-diff", 1);
41
+ } if (rf & 2) {
42
+ const ctx_r0 = i0.ɵɵnextContext();
43
+ i0.ɵɵproperty("Base", ctx_r0.Form.BaseVersion)("Draft", ctx_r0.Form.DraftVersion);
44
+ } }
45
+ function RubricDiffPanel_Conditional_2_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵelementStart(0, "p");
47
+ i0.ɵɵtext(1, "Publish a version before this rubric has a diff.");
48
+ i0.ɵɵelementEnd();
49
+ } }
50
+ function RubricPublishPanel_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
51
+ const _r3 = i0.ɵɵgetCurrentView();
52
+ i0.ɵɵelementStart(0, "button", 3);
53
+ i0.ɵɵlistener("click", function RubricPublishPanel_Conditional_1_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.Form.OnCancel()); });
54
+ i0.ɵɵtext(1, "Cancel");
55
+ i0.ɵɵelementEnd();
56
+ } }
57
+ function RubricPublishPanel_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
58
+ i0.ɵɵelementStart(0, "p");
59
+ i0.ɵɵtext(1);
60
+ i0.ɵɵelementEnd();
61
+ } if (rf & 2) {
62
+ const ctx_r1 = i0.ɵɵnextContext(2);
63
+ i0.ɵɵadvance();
64
+ i0.ɵɵtextInterpolate(ctx_r1.Form.Message);
65
+ } }
66
+ function RubricPublishPanel_Conditional_1_Template(rf, ctx) { if (rf & 1) {
67
+ const _r1 = i0.ɵɵgetCurrentView();
68
+ i0.ɵɵelementStart(0, "mj-rubric-publish-dialog", 1);
69
+ i0.ɵɵlistener("RequestedBumpChange", function RubricPublishPanel_Conditional_1_Template_mj_rubric_publish_dialog_RequestedBumpChange_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Form.RequestedBump = $event); })("SummaryChange", function RubricPublishPanel_Conditional_1_Template_mj_rubric_publish_dialog_SummaryChange_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Form.Summary = $event); })("Confirm", function RubricPublishPanel_Conditional_1_Template_mj_rubric_publish_dialog_Confirm_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Form.OnPublish($event)); });
70
+ i0.ɵɵconditionalCreate(1, RubricPublishPanel_Conditional_1_Conditional_1_Template, 2, 0, "button", 2);
71
+ i0.ɵɵelementEnd();
72
+ i0.ɵɵconditionalCreate(2, RubricPublishPanel_Conditional_1_Conditional_2_Template, 2, 1, "p");
73
+ } if (rf & 2) {
74
+ const ctx_r1 = i0.ɵɵnextContext();
75
+ i0.ɵɵproperty("Base", ctx_r1.Form.BaseVersion)("Draft", ctx_r1.Form.DraftVersion)("RequestedBump", ctx_r1.Form.RequestedBump)("Summary", ctx_r1.Form.Summary)("ReadOnly", !ctx_r1.Form.EditMode);
76
+ i0.ɵɵadvance();
77
+ i0.ɵɵconditional(ctx_r1.Form.EditMode ? 1 : -1);
78
+ i0.ɵɵadvance();
79
+ i0.ɵɵconditional(ctx_r1.Form.Message ? 2 : -1);
80
+ } }
81
+ function RubricPublishPanel_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
82
+ const _r4 = i0.ɵɵgetCurrentView();
83
+ i0.ɵɵelementStart(0, "button", 3);
84
+ i0.ɵɵlistener("click", function RubricPublishPanel_Conditional_2_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.Form.StartDraft()); });
85
+ i0.ɵɵtext(1, "Start new draft");
86
+ i0.ɵɵelementEnd();
87
+ } }
88
+ function RubricPublishPanel_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
89
+ i0.ɵɵelementStart(0, "p");
90
+ i0.ɵɵtext(1);
91
+ i0.ɵɵelementEnd();
92
+ } if (rf & 2) {
93
+ const ctx_r1 = i0.ɵɵnextContext(2);
94
+ i0.ɵɵadvance();
95
+ i0.ɵɵtextInterpolate(ctx_r1.Form.Message);
96
+ } }
97
+ function RubricPublishPanel_Conditional_2_Template(rf, ctx) { if (rf & 1) {
98
+ i0.ɵɵelementStart(0, "p");
99
+ i0.ɵɵtext(1, "This rubric has no draft to publish.");
100
+ i0.ɵɵelementEnd();
101
+ i0.ɵɵconditionalCreate(2, RubricPublishPanel_Conditional_2_Conditional_2_Template, 2, 0, "button", 2);
102
+ i0.ɵɵconditionalCreate(3, RubricPublishPanel_Conditional_2_Conditional_3_Template, 2, 1, "p");
103
+ } if (rf & 2) {
104
+ const ctx_r1 = i0.ɵɵnextContext();
105
+ i0.ɵɵadvance(2);
106
+ i0.ɵɵconditional(ctx_r1.Form.EditMode ? 2 : -1);
107
+ i0.ɵɵadvance();
108
+ i0.ɵɵconditional(ctx_r1.Form.Message ? 3 : -1);
109
+ } }
110
+ /** The author, the diff, and publish are each their own left-nav contribution. */
111
+ function host(panel) {
112
+ return panel.FormComponent;
113
+ }
114
+ let RubricAuthorPanel = class RubricAuthorPanel extends BaseFormPanel {
115
+ get Form() { return host(this); }
116
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵRubricAuthorPanel_BaseFactory; return function RubricAuthorPanel_Factory(__ngFactoryType__) { return (ɵRubricAuthorPanel_BaseFactory || (ɵRubricAuthorPanel_BaseFactory = i0.ɵɵgetInheritedFactory(RubricAuthorPanel)))(__ngFactoryType__ || RubricAuthorPanel); }; })(); }
117
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RubricAuthorPanel, selectors: [["mj-rubric-author-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 4, consts: [["SectionKey", "rubric-author", "SectionName", "Author", "Icon", "fa-solid fa-pen", 3, "Form", "FormContext", "DefaultExpanded"], ["text", "Loading the rubric..."], ["mjButton", "", "variant", "outline", "size", "sm", "type", "button"], [3, "ViewingChange", "NodesChange", "BandsChange", "Name", "PublishedLabel", "NextVersion", "ComputedBump", "Viewing", "Nodes", "Scales", "Bands", "BaseBands", "Version", "ReadOnly"], ["mjButton", "", "variant", "outline", "size", "sm", "type", "button", 3, "click"]], template: function RubricAuthorPanel_Template(rf, ctx) { if (rf & 1) {
118
+ i0.ɵɵelementStart(0, "mj-collapsible-panel", 0);
119
+ i0.ɵɵconditionalCreate(1, RubricAuthorPanel_Conditional_1_Template, 1, 0, "mj-loading", 1)(2, RubricAuthorPanel_Conditional_2_Template, 2, 15);
120
+ i0.ɵɵelementEnd();
121
+ } if (rf & 2) {
122
+ i0.ɵɵproperty("Form", ctx.FormComponent)("FormContext", ctx.FormContext)("DefaultExpanded", true);
123
+ i0.ɵɵadvance();
124
+ i0.ɵɵconditional(ctx.Form.Loading ? 1 : 2);
125
+ } }, dependencies: [BaseFormsModule, i1.MjCollapsiblePanelComponent, SharedGenericModule, i2.LoadingComponent, MJButtonDirective, RubricBuilderComponent], encapsulation: 2 }); }
126
+ };
127
+ RubricAuthorPanel = __decorate([
128
+ RegisterClassEx(BaseFormPanel, {
129
+ key: 'form-panel:MJRubrics:author',
130
+ metadata: {
131
+ entity: 'MJ: Rubrics',
132
+ slot: 'before-fields',
133
+ sortKey: 100,
134
+ contributionKey: 'rubric-author',
135
+ inclusion: 'Primary',
136
+ leadsWhenUnsaved: true,
137
+ },
138
+ })
139
+ ], RubricAuthorPanel);
140
+ export { RubricAuthorPanel };
141
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RubricAuthorPanel, [{
142
+ type: Component,
143
+ args: [{
144
+ selector: 'mj-rubric-author-panel',
145
+ standalone: true,
146
+ imports: [BaseFormsModule, SharedGenericModule, MJButtonDirective, RubricBuilderComponent],
147
+ template: `
148
+ <mj-collapsible-panel SectionKey="rubric-author" SectionName="Author" Icon="fa-solid fa-pen" [Form]="FormComponent" [FormContext]="FormContext" [DefaultExpanded]="true">
149
+ @if (Form.Loading) {
150
+ <mj-loading text="Loading the rubric..."></mj-loading>
151
+ } @else {
152
+ @if (!Form.DraftId && Form.EditMode) {
153
+ <button mjButton variant="outline" size="sm" type="button" (click)="Form.StartDraft()">Start new draft</button>
154
+ }
155
+ <mj-rubric-builder [Name]="Record.Name" [PublishedLabel]="Form.PublishedLabel" [NextVersion]="Form.NextVersion" [ComputedBump]="Form.ComputedBump" [Viewing]="Form.Viewing" (ViewingChange)="Form.Viewing = $event" [Nodes]="Form.Viewing === 'published' ? (Form.BaseVersion?.nodes ?? []) : Form.Nodes" [Scales]="Form.Scales" [Bands]="Form.Viewing === 'published' ? (Form.BaseVersion?.bands ?? []) : Form.Bands" [BaseBands]="Form.BaseVersion?.bands ?? []" [Version]="Form.Viewing === 'published' ? Form.BaseVersion : Form.DraftVersion" [ReadOnly]="!Form.EditMode || !Form.DraftId || Form.Viewing === 'published'" (NodesChange)="Form.OnNodes($event)" (BandsChange)="Form.OnBands($event)"></mj-rubric-builder>
156
+ }
157
+ </mj-collapsible-panel>
158
+ `,
159
+ }]
160
+ }], null, null); })();
161
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RubricAuthorPanel, { className: "RubricAuthorPanel", filePath: "src/lib/custom/Rubrics/rubric-form.panels.ts", lineNumber: 43 }); })();
162
+ let RubricDiffPanel = class RubricDiffPanel extends BaseFormPanel {
163
+ get Form() { return host(this); }
164
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵRubricDiffPanel_BaseFactory; return function RubricDiffPanel_Factory(__ngFactoryType__) { return (ɵRubricDiffPanel_BaseFactory || (ɵRubricDiffPanel_BaseFactory = i0.ɵɵgetInheritedFactory(RubricDiffPanel)))(__ngFactoryType__ || RubricDiffPanel); }; })(); }
165
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RubricDiffPanel, selectors: [["mj-rubric-diff-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 4, consts: [["SectionKey", "rubric-diff", "SectionName", "Version diff", "Icon", "fa-solid fa-code-compare", 3, "Form", "FormContext", "DefaultExpanded"], [3, "Base", "Draft"]], template: function RubricDiffPanel_Template(rf, ctx) { if (rf & 1) {
166
+ i0.ɵɵelementStart(0, "mj-collapsible-panel", 0);
167
+ i0.ɵɵconditionalCreate(1, RubricDiffPanel_Conditional_1_Template, 1, 2, "mj-rubric-version-diff", 1)(2, RubricDiffPanel_Conditional_2_Template, 2, 0, "p");
168
+ i0.ɵɵelementEnd();
169
+ } if (rf & 2) {
170
+ i0.ɵɵproperty("Form", ctx.FormComponent)("FormContext", ctx.FormContext)("DefaultExpanded", true);
171
+ i0.ɵɵadvance();
172
+ i0.ɵɵconditional(ctx.Form.BaseVersion && ctx.Form.DraftVersion ? 1 : 2);
173
+ } }, dependencies: [BaseFormsModule, i1.MjCollapsiblePanelComponent, RubricVersionDiffComponent], encapsulation: 2 }); }
174
+ };
175
+ RubricDiffPanel = __decorate([
176
+ RegisterClassEx(BaseFormPanel, {
177
+ key: 'form-panel:MJRubrics:diff',
178
+ metadata: {
179
+ entity: 'MJ: Rubrics',
180
+ slot: 'after-fields',
181
+ sortKey: 90,
182
+ contributionKey: 'rubric-diff',
183
+ inclusion: 'Primary',
184
+ },
185
+ })
186
+ ], RubricDiffPanel);
187
+ export { RubricDiffPanel };
188
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RubricDiffPanel, [{
189
+ type: Component,
190
+ args: [{
191
+ selector: 'mj-rubric-diff-panel',
192
+ standalone: true,
193
+ imports: [BaseFormsModule, RubricVersionDiffComponent],
194
+ template: `
195
+ <mj-collapsible-panel SectionKey="rubric-diff" SectionName="Version diff" Icon="fa-solid fa-code-compare" [Form]="FormComponent" [FormContext]="FormContext" [DefaultExpanded]="true">
196
+ @if (Form.BaseVersion && Form.DraftVersion) {
197
+ <mj-rubric-version-diff [Base]="Form.BaseVersion" [Draft]="Form.DraftVersion"></mj-rubric-version-diff>
198
+ } @else {
199
+ <p>Publish a version before this rubric has a diff.</p>
200
+ }
201
+ </mj-collapsible-panel>
202
+ `,
203
+ }]
204
+ }], null, null); })();
205
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RubricDiffPanel, { className: "RubricDiffPanel", filePath: "src/lib/custom/Rubrics/rubric-form.panels.ts", lineNumber: 71 }); })();
206
+ let RubricPublishPanel = class RubricPublishPanel extends BaseFormPanel {
207
+ get Form() { return host(this); }
208
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵRubricPublishPanel_BaseFactory; return function RubricPublishPanel_Factory(__ngFactoryType__) { return (ɵRubricPublishPanel_BaseFactory || (ɵRubricPublishPanel_BaseFactory = i0.ɵɵgetInheritedFactory(RubricPublishPanel)))(__ngFactoryType__ || RubricPublishPanel); }; })(); }
209
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RubricPublishPanel, selectors: [["mj-rubric-publish-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 4, consts: [["SectionKey", "rubric-publish", "SectionName", "Publish", "Icon", "fa-solid fa-cloud-arrow-up", 3, "Form", "FormContext", "DefaultExpanded"], [3, "RequestedBumpChange", "SummaryChange", "Confirm", "Base", "Draft", "RequestedBump", "Summary", "ReadOnly"], ["mjButton", "", "variant", "outline", "size", "sm", "type", "button"], ["mjButton", "", "variant", "outline", "size", "sm", "type", "button", 3, "click"]], template: function RubricPublishPanel_Template(rf, ctx) { if (rf & 1) {
210
+ i0.ɵɵelementStart(0, "mj-collapsible-panel", 0);
211
+ i0.ɵɵconditionalCreate(1, RubricPublishPanel_Conditional_1_Template, 3, 7)(2, RubricPublishPanel_Conditional_2_Template, 4, 2);
212
+ i0.ɵɵelementEnd();
213
+ } if (rf & 2) {
214
+ i0.ɵɵproperty("Form", ctx.FormComponent)("FormContext", ctx.FormContext)("DefaultExpanded", true);
215
+ i0.ɵɵadvance();
216
+ i0.ɵɵconditional(ctx.Form.DraftVersion ? 1 : 2);
217
+ } }, dependencies: [BaseFormsModule, i1.MjCollapsiblePanelComponent, MJButtonDirective, RubricPublishDialogComponent], encapsulation: 2 }); }
218
+ };
219
+ RubricPublishPanel = __decorate([
220
+ RegisterClassEx(BaseFormPanel, {
221
+ key: 'form-panel:MJRubrics:publish',
222
+ metadata: {
223
+ entity: 'MJ: Rubrics',
224
+ slot: 'after-fields',
225
+ sortKey: 80,
226
+ contributionKey: 'rubric-publish',
227
+ inclusion: 'Primary',
228
+ },
229
+ })
230
+ ], RubricPublishPanel);
231
+ export { RubricPublishPanel };
232
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RubricPublishPanel, [{
233
+ type: Component,
234
+ args: [{
235
+ selector: 'mj-rubric-publish-panel',
236
+ standalone: true,
237
+ imports: [BaseFormsModule, MJButtonDirective, RubricPublishDialogComponent],
238
+ template: `
239
+ <mj-collapsible-panel SectionKey="rubric-publish" SectionName="Publish" Icon="fa-solid fa-cloud-arrow-up" [Form]="FormComponent" [FormContext]="FormContext" [DefaultExpanded]="true">
240
+ @if (Form.DraftVersion) {
241
+ <mj-rubric-publish-dialog [Base]="Form.BaseVersion" [Draft]="Form.DraftVersion" [RequestedBump]="Form.RequestedBump" [Summary]="Form.Summary" [ReadOnly]="!Form.EditMode" (RequestedBumpChange)="Form.RequestedBump = $event" (SummaryChange)="Form.Summary = $event" (Confirm)="Form.OnPublish($event)">
242
+ @if (Form.EditMode) {
243
+ <button mjButton variant="outline" size="sm" type="button" (click)="Form.OnCancel()">Cancel</button>
244
+ }
245
+ </mj-rubric-publish-dialog>
246
+ @if (Form.Message) { <p>{{ Form.Message }}</p> }
247
+ } @else {
248
+ <p>This rubric has no draft to publish.</p>
249
+ @if (Form.EditMode) {
250
+ <button mjButton variant="outline" size="sm" type="button" (click)="Form.StartDraft()">Start new draft</button>
251
+ }
252
+ @if (Form.Message) { <p>{{ Form.Message }}</p> }
253
+ }
254
+ </mj-collapsible-panel>
255
+ `,
256
+ }]
257
+ }], null, null); })();
258
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RubricPublishPanel, { className: "RubricPublishPanel", filePath: "src/lib/custom/Rubrics/rubric-form.panels.ts", lineNumber: 108 }); })();
259
+ let RubricVersionsPanel = class RubricVersionsPanel extends BaseFormPanel {
260
+ get Form() { return host(this); }
261
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵRubricVersionsPanel_BaseFactory; return function RubricVersionsPanel_Factory(__ngFactoryType__) { return (ɵRubricVersionsPanel_BaseFactory || (ɵRubricVersionsPanel_BaseFactory = i0.ɵɵgetInheritedFactory(RubricVersionsPanel)))(__ngFactoryType__ || RubricVersionsPanel); }; })(); }
262
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RubricVersionsPanel, selectors: [["mj-rubric-versions-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 4, consts: [["SectionKey", "rubric-versions", "SectionName", "Versions", "Icon", "fa-solid fa-code-branch", 3, "Form", "FormContext", "DefaultExpanded"], [3, "Open", "Cards"]], template: function RubricVersionsPanel_Template(rf, ctx) { if (rf & 1) {
263
+ i0.ɵɵelementStart(0, "mj-collapsible-panel", 0)(1, "mj-rubric-version-board", 1);
264
+ i0.ɵɵlistener("Open", function RubricVersionsPanel_Template_mj_rubric_version_board_Open_1_listener($event) { return ctx.Form.OpenVersion($event); });
265
+ i0.ɵɵelementEnd()();
266
+ } if (rf & 2) {
267
+ i0.ɵɵproperty("Form", ctx.FormComponent)("FormContext", ctx.FormContext)("DefaultExpanded", true);
268
+ i0.ɵɵadvance();
269
+ i0.ɵɵproperty("Cards", ctx.Form.VersionCards);
270
+ } }, dependencies: [BaseFormsModule, i1.MjCollapsiblePanelComponent, RubricVersionBoardComponent], encapsulation: 2 }); }
271
+ };
272
+ RubricVersionsPanel = __decorate([
273
+ RegisterClassEx(BaseFormPanel, {
274
+ key: 'form-panel:MJRubrics:versions',
275
+ metadata: {
276
+ entity: 'MJ: Rubrics',
277
+ slot: 'after-fields',
278
+ sortKey: 95,
279
+ contributionKey: 'rubric-versions',
280
+ inclusion: 'Primary',
281
+ },
282
+ })
283
+ ], RubricVersionsPanel);
284
+ export { RubricVersionsPanel };
285
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RubricVersionsPanel, [{
286
+ type: Component,
287
+ args: [{
288
+ selector: 'mj-rubric-versions-panel',
289
+ standalone: true,
290
+ imports: [BaseFormsModule, RubricVersionBoardComponent],
291
+ template: `
292
+ <mj-collapsible-panel SectionKey="rubric-versions" SectionName="Versions" Icon="fa-solid fa-code-branch" [Form]="FormComponent" [FormContext]="FormContext" [DefaultExpanded]="true">
293
+ <mj-rubric-version-board [Cards]="Form.VersionCards" (Open)="Form.OpenVersion($event)"></mj-rubric-version-board>
294
+ </mj-collapsible-panel>
295
+ `,
296
+ }]
297
+ }], null, null); })();
298
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RubricVersionsPanel, { className: "RubricVersionsPanel", filePath: "src/lib/custom/Rubrics/rubric-form.panels.ts", lineNumber: 132 }); })();
299
+ //# sourceMappingURL=rubric-form.panels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rubric-form.panels.js","sourceRoot":"","sources":["../../../../src/lib/custom/Rubrics/rubric-form.panels.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;;;;;;IA0BjJ,gCAAsD;;;;IAGpD,iCAAuF;IAA5B,oMAAS,wBAAiB,KAAC;IAAC,+BAAe;IAAA,iBAAS;;;;IADjH,oGAAsC;IAGtC,4CAA0qB;IAArC,AAArC,AAApb,uPAAuC,qMAA4Z,2BAAoB,KAAC,qMAAgB,2BAAoB,KAAC;IAAC,iBAAoB;;;IAH9rB,uEAEC;IACkB,cAAoB;IAA4e,AAAhF,AAA5C,AAAtF,AAAvB,AAAtF,AAAjE,AAAnC,AAAjC,AAAvC,AAArB,yCAAoB,8CAAuC,wCAAiC,0CAAmC,gCAAyB,4KAA8H,8BAAuB,4KAAsF,sHAA4C,qGAAgF,kGAA6E;;;IA0B/lB,4CAAuG;;;IAArD,AAA1B,8CAAyB,mCAA4B;;;IAE7E,yBAAG;IAAA,gEAAgD;IAAA,iBAAI;;;;IA4BnD,iCAAqF;IAA1B,qMAAS,sBAAe,KAAC;IAAC,sBAAM;IAAA,iBAAS;;;IAGnF,yBAAG;IAAA,YAAkB;IAAA,iBAAI;;;IAAtB,cAAkB;IAAlB,yCAAkB;;;;IAL1C,mDAAyS;IAAnC,AAAxC,AAApD,iRAAmD,kPAAwC,qMAAY,6BAAsB,KAAC;IACtS,qGAAqB;IAGvB,iBAA2B;IAC3B,6FAAoB;;;IAL0H,AAAzB,AAArC,AAA5B,AAA1B,8CAAyB,mCAA4B,4CAAqC,gCAAyB,mCAA4B;IACvK,cAEC;IAFD,+CAEC;IAEH,cAAgD;IAAhD,8CAAgD;;;;IAI9C,iCAAuF;IAA5B,qMAAS,wBAAiB,KAAC;IAAC,+BAAe;IAAA,iBAAS;;;IAE5F,yBAAG;IAAA,YAAkB;IAAA,iBAAI;;;IAAtB,cAAkB;IAAlB,yCAAkB;;;IAJ1C,yBAAG;IAAA,oDAAoC;IAAA,iBAAI;IAC3C,qGAAqB;IAGrB,6FAAoB;;;IAHpB,eAEC;IAFD,+CAEC;IACD,cAAgD;IAAhD,8CAAgD;;AA7F1D,kFAAkF;AAClF,SAAS,IAAI,CAAC,KAAoC;IAC9C,OAAO,KAAK,CAAC,aAA8C,CAAC;AAChE,CAAC;AA8BM,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAA6B;IAChE,IAAW,IAAI,KAAoC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wPAD9D,iBAAiB,yBAAjB,iBAAiB;oEAAjB,iBAAiB;YAZxB,+CAAyK;YAGrK,AAFF,0FAAoB,oDAEX;YAMX,iBAAuB;;YATyH,AAA5B,AAAvB,wCAAsB,gCAA4B,yBAAyB;YACtK,cAOC;YAPD,0CAOC;4BAVK,eAAe,kCAAE,mBAAmB,uBAAE,iBAAiB,EAAE,sBAAsB;;AAchF,iBAAiB;IA5B7B,eAAe,CAAC,aAAa,EAAE;QAC5B,GAAG,EAAE,6BAA6B;QAClC,QAAQ,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,GAAG;YACZ,eAAe,EAAE,eAAe;YAChC,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,IAAI;SACzB;KACJ,CAAC;GAkBW,iBAAiB,CAE7B;;iFAFY,iBAAiB;cAjB7B,SAAS;eAAC;gBACP,QAAQ,EAAE,wBAAwB;gBAClC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;gBAC1F,QAAQ,EAAE;;;;;;;;;;;KAWT;aACJ;;kFACY,iBAAiB;AA4BvB,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,aAA6B;IAC9D,IAAW,IAAI,KAAoC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gPAD9D,eAAe,yBAAf,eAAe;oEAAf,eAAe;YATtB,+CAAsL;YAGlL,AAFF,oGAA6C,sDAEpC;YAGX,iBAAuB;;YANsI,AAA5B,AAAvB,wCAAsB,gCAA4B,yBAAyB;YACnL,cAIC;YAJD,uEAIC;4BAPK,eAAe,kCAAE,0BAA0B;;AAW5C,eAAe;IAxB3B,eAAe,CAAC,aAAa,EAAE;QAC5B,GAAG,EAAE,2BAA2B;QAChC,QAAQ,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,aAAa;YAC9B,SAAS,EAAE,SAAS;SACvB;KACJ,CAAC;GAeW,eAAe,CAE3B;;iFAFY,eAAe;cAd3B,SAAS;eAAC;gBACP,QAAQ,EAAE,sBAAsB;gBAChC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,eAAe,EAAE,0BAA0B,CAAC;gBACtD,QAAQ,EAAE;;;;;;;;KAQT;aACJ;;kFACY,eAAe;AAqCrB,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,aAA6B;IACjE,IAAW,IAAI,KAAoC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4PAD9D,kBAAkB,yBAAlB,kBAAkB;oEAAlB,kBAAkB;YAlBzB,+CAAsL;YAQlL,AAPF,0EAAyB,oDAOhB;YAOX,iBAAuB;;YAfsI,AAA5B,AAAvB,wCAAsB,gCAA4B,yBAAyB;YACnL,cAaC;YAbD,+CAaC;4BAhBK,eAAe,kCAAE,iBAAiB,EAAE,4BAA4B;;AAoBjE,kBAAkB;IAjC9B,eAAe,CAAC,aAAa,EAAE;QAC5B,GAAG,EAAE,8BAA8B;QACnC,QAAQ,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,gBAAgB;YACjC,SAAS,EAAE,SAAS;SACvB;KACJ,CAAC;GAwBW,kBAAkB,CAE9B;;iFAFY,kBAAkB;cAvB9B,SAAS;eAAC;gBACP,QAAQ,EAAE,yBAAyB;gBACnC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,eAAe,EAAE,iBAAiB,EAAE,4BAA4B,CAAC;gBAC3E,QAAQ,EAAE;;;;;;;;;;;;;;;;;KAiBT;aACJ;;kFACY,kBAAkB;AAwBxB,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,aAA6B;IAClE,IAAW,IAAI,KAAoC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gQAD9D,mBAAmB,yBAAnB,mBAAmB;oEAAnB,mBAAmB;YAJxB,AADF,+CAAqL,iCAC5F;YAAlC,qHAAQ,4BAAwB,IAAC;YACxF,AADyF,iBAA0B,EAC5F;;YAFqI,AAA5B,AAAvB,wCAAsB,gCAA4B,yBAAyB;YACzJ,cAA2B;YAA3B,6CAA2B;4BAH9C,eAAe,kCAAE,2BAA2B;;AAO7C,mBAAmB;IApB/B,eAAe,CAAC,aAAa,EAAE;QAC5B,GAAG,EAAE,+BAA+B;QACpC,QAAQ,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,iBAAiB;YAClC,SAAS,EAAE,SAAS;SACvB;KACJ,CAAC;GAWW,mBAAmB,CAE/B;;iFAFY,mBAAmB;cAV/B,SAAS;eAAC;gBACP,QAAQ,EAAE,0BAA0B;gBACpC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,eAAe,EAAE,2BAA2B,CAAC;gBACvD,QAAQ,EAAE;;;;KAIT;aACJ;;kFACY,mBAAmB","sourcesContent":["import { Component } from '@angular/core';\nimport { RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormPanel, BaseFormsModule } from '@memberjunction/ng-base-forms';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { MJRubricEntity } from '@memberjunction/core-entities';\nimport { MJButtonDirective } from '@memberjunction/ng-ui-components';\nimport { RubricBuilderComponent, RubricPublishDialogComponent, RubricVersionBoardComponent, RubricVersionDiffComponent } from '@memberjunction/ng-rubrics';\nimport { MJRubricFormComponentExtended } from './rubric-form.component';\n\n/** The author, the diff, and publish are each their own left-nav contribution. */\nfunction host(panel: BaseFormPanel<MJRubricEntity>): MJRubricFormComponentExtended {\n return panel.FormComponent as MJRubricFormComponentExtended;\n}\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJRubrics:author',\n metadata: {\n entity: 'MJ: Rubrics',\n slot: 'before-fields',\n sortKey: 100,\n contributionKey: 'rubric-author',\n inclusion: 'Primary',\n leadsWhenUnsaved: true,\n },\n})\n@Component({\n selector: 'mj-rubric-author-panel',\n standalone: true,\n imports: [BaseFormsModule, SharedGenericModule, MJButtonDirective, RubricBuilderComponent],\n template: `\n <mj-collapsible-panel SectionKey=\"rubric-author\" SectionName=\"Author\" Icon=\"fa-solid fa-pen\" [Form]=\"FormComponent\" [FormContext]=\"FormContext\" [DefaultExpanded]=\"true\">\n @if (Form.Loading) {\n <mj-loading text=\"Loading the rubric...\"></mj-loading>\n } @else {\n @if (!Form.DraftId && Form.EditMode) {\n <button mjButton variant=\"outline\" size=\"sm\" type=\"button\" (click)=\"Form.StartDraft()\">Start new draft</button>\n }\n <mj-rubric-builder [Name]=\"Record.Name\" [PublishedLabel]=\"Form.PublishedLabel\" [NextVersion]=\"Form.NextVersion\" [ComputedBump]=\"Form.ComputedBump\" [Viewing]=\"Form.Viewing\" (ViewingChange)=\"Form.Viewing = $event\" [Nodes]=\"Form.Viewing === 'published' ? (Form.BaseVersion?.nodes ?? []) : Form.Nodes\" [Scales]=\"Form.Scales\" [Bands]=\"Form.Viewing === 'published' ? (Form.BaseVersion?.bands ?? []) : Form.Bands\" [BaseBands]=\"Form.BaseVersion?.bands ?? []\" [Version]=\"Form.Viewing === 'published' ? Form.BaseVersion : Form.DraftVersion\" [ReadOnly]=\"!Form.EditMode || !Form.DraftId || Form.Viewing === 'published'\" (NodesChange)=\"Form.OnNodes($event)\" (BandsChange)=\"Form.OnBands($event)\"></mj-rubric-builder>\n }\n </mj-collapsible-panel>\n `,\n})\nexport class RubricAuthorPanel extends BaseFormPanel<MJRubricEntity> {\n public get Form(): MJRubricFormComponentExtended { return host(this); }\n}\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJRubrics:diff',\n metadata: {\n entity: 'MJ: Rubrics',\n slot: 'after-fields',\n sortKey: 90,\n contributionKey: 'rubric-diff',\n inclusion: 'Primary',\n },\n})\n@Component({\n selector: 'mj-rubric-diff-panel',\n standalone: true,\n imports: [BaseFormsModule, RubricVersionDiffComponent],\n template: `\n <mj-collapsible-panel SectionKey=\"rubric-diff\" SectionName=\"Version diff\" Icon=\"fa-solid fa-code-compare\" [Form]=\"FormComponent\" [FormContext]=\"FormContext\" [DefaultExpanded]=\"true\">\n @if (Form.BaseVersion && Form.DraftVersion) {\n <mj-rubric-version-diff [Base]=\"Form.BaseVersion\" [Draft]=\"Form.DraftVersion\"></mj-rubric-version-diff>\n } @else {\n <p>Publish a version before this rubric has a diff.</p>\n }\n </mj-collapsible-panel>\n `,\n})\nexport class RubricDiffPanel extends BaseFormPanel<MJRubricEntity> {\n public get Form(): MJRubricFormComponentExtended { return host(this); }\n}\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJRubrics:publish',\n metadata: {\n entity: 'MJ: Rubrics',\n slot: 'after-fields',\n sortKey: 80,\n contributionKey: 'rubric-publish',\n inclusion: 'Primary',\n },\n})\n@Component({\n selector: 'mj-rubric-publish-panel',\n standalone: true,\n imports: [BaseFormsModule, MJButtonDirective, RubricPublishDialogComponent],\n template: `\n <mj-collapsible-panel SectionKey=\"rubric-publish\" SectionName=\"Publish\" Icon=\"fa-solid fa-cloud-arrow-up\" [Form]=\"FormComponent\" [FormContext]=\"FormContext\" [DefaultExpanded]=\"true\">\n @if (Form.DraftVersion) {\n <mj-rubric-publish-dialog [Base]=\"Form.BaseVersion\" [Draft]=\"Form.DraftVersion\" [RequestedBump]=\"Form.RequestedBump\" [Summary]=\"Form.Summary\" [ReadOnly]=\"!Form.EditMode\" (RequestedBumpChange)=\"Form.RequestedBump = $event\" (SummaryChange)=\"Form.Summary = $event\" (Confirm)=\"Form.OnPublish($event)\">\n @if (Form.EditMode) {\n <button mjButton variant=\"outline\" size=\"sm\" type=\"button\" (click)=\"Form.OnCancel()\">Cancel</button>\n }\n </mj-rubric-publish-dialog>\n @if (Form.Message) { <p>{{ Form.Message }}</p> }\n } @else {\n <p>This rubric has no draft to publish.</p>\n @if (Form.EditMode) {\n <button mjButton variant=\"outline\" size=\"sm\" type=\"button\" (click)=\"Form.StartDraft()\">Start new draft</button>\n }\n @if (Form.Message) { <p>{{ Form.Message }}</p> }\n }\n </mj-collapsible-panel>\n `,\n})\nexport class RubricPublishPanel extends BaseFormPanel<MJRubricEntity> {\n public get Form(): MJRubricFormComponentExtended { return host(this); }\n}\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJRubrics:versions',\n metadata: {\n entity: 'MJ: Rubrics',\n slot: 'after-fields',\n sortKey: 95,\n contributionKey: 'rubric-versions',\n inclusion: 'Primary',\n },\n})\n@Component({\n selector: 'mj-rubric-versions-panel',\n standalone: true,\n imports: [BaseFormsModule, RubricVersionBoardComponent],\n template: `\n <mj-collapsible-panel SectionKey=\"rubric-versions\" SectionName=\"Versions\" Icon=\"fa-solid fa-code-branch\" [Form]=\"FormComponent\" [FormContext]=\"FormContext\" [DefaultExpanded]=\"true\">\n <mj-rubric-version-board [Cards]=\"Form.VersionCards\" (Open)=\"Form.OpenVersion($event)\"></mj-rubric-version-board>\n </mj-collapsible-panel>\n `,\n})\nexport class RubricVersionsPanel extends BaseFormPanel<MJRubricEntity> {\n public get Form(): MJRubricFormComponentExtended { return host(this); }\n}\n"]}
@@ -0,0 +1,31 @@
1
+ import { MJRubricScaleEntity } from '@memberjunction/core-entities';
2
+ import { BaseFormPanel, BaseFormPolicy, type FormChromeContext, type FormChromeSpec } from '@memberjunction/ng-base-forms';
3
+ import { MJRubricScaleFormComponent } from '../../generated/Entities/MJRubricScale/mjrubricscale.form.component';
4
+ import * as i0 from "@angular/core";
5
+ /** Scale form. Loads the levels and saves a label edit. */
6
+ export declare class MJRubricScaleFormComponentExtended extends MJRubricScaleFormComponent {
7
+ record: MJRubricScaleEntity;
8
+ Loading: boolean;
9
+ Frozen: boolean;
10
+ Levels: Record<string, unknown>[];
11
+ Message: string;
12
+ get RangeMin(): string;
13
+ get RangeMax(): string;
14
+ ngOnInit(): Promise<void>;
15
+ LoadLevels(): Promise<void>;
16
+ OnLabel(level: Record<string, unknown>, event: Event): Promise<void>;
17
+ OnDescription(level: Record<string, unknown>, event: Event): Promise<void>;
18
+ private level;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<MJRubricScaleFormComponentExtended, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<MJRubricScaleFormComponentExtended, "mj-rubric-scale-form", never, {}, {}, never, never, false, never>;
21
+ }
22
+ /** The scale record uses the left-nav rail. The level editor is its own item. */
23
+ export declare class RubricScaleFormPolicy extends BaseFormPolicy {
24
+ DecorateChrome(spec: FormChromeSpec, _ctx: FormChromeContext): FormChromeSpec;
25
+ }
26
+ export declare class RubricScaleLevelsPanel extends BaseFormPanel<MJRubricScaleEntity> {
27
+ get Form(): MJRubricScaleFormComponentExtended;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<RubricScaleLevelsPanel, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<RubricScaleLevelsPanel, "mj-rubric-scale-levels-panel", never, {}, {}, never, never, true, never>;
30
+ }
31
+ //# sourceMappingURL=scale-form.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scale-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Rubrics/scale-form.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAA4B,MAAM,+BAA+B,CAAC;AAE9F,OAAO,EAAqB,aAAa,EAAE,cAAc,EAAmB,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/J,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;;AAEjH,2DAA2D;AAC3D,qBAMa,kCAAmC,SAAQ,0BAA0B;IAC9D,MAAM,EAAG,mBAAmB,CAAC;IACtC,OAAO,UAAQ;IACf,MAAM,UAAS;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAM;IACvC,OAAO,SAAM;IAEpB,IAAW,QAAQ,IAAI,MAAM,CAG5B;IAED,IAAW,QAAQ,IAAI,MAAM,CAG5B;IAEqB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C3B,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;YAazE,KAAK;yCA3FV,kCAAkC;2CAAlC,kCAAkC;CAoG9C;AAED,iFAAiF;AACjF,qBACa,qBAAsB,SAAQ,cAAc;IACrC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,GAAG,cAAc;CAGhG;AAED,qBAkBa,sBAAuB,SAAQ,aAAa,CAAC,mBAAmB,CAAC;IAC1E,IAAW,IAAI,IAAI,kCAAkC,CAEpD;yCAHQ,sBAAsB;2CAAtB,sBAAsB;CAIlC"}