@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,395 @@
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 { CompositeKey, RunView } from '@memberjunction/core';
9
+ import { RegisterClass, RegisterClassEx } from '@memberjunction/global';
10
+ import { BaseFormComponent, BaseFormPanel, BaseFormPolicy, BaseFormsModule } from '@memberjunction/ng-base-forms';
11
+ import { MJRubricScaleFormComponent } from '../../generated/Entities/MJRubricScale/mjrubricscale.form.component';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@memberjunction/ng-base-forms";
14
+ function MJRubricScaleFormComponentExtended_Conditional_15_Template(rf, ctx) { if (rf & 1) {
15
+ const _r1 = i0.ɵɵgetCurrentView();
16
+ i0.ɵɵelementStart(0, "div")(1, "mj-explorer-entity-data-grid", 17);
17
+ i0.ɵɵlistener("Navigate", function MJRubricScaleFormComponentExtended_Conditional_15_Template_mj_explorer_entity_data_grid_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("AfterDataLoad", function MJRubricScaleFormComponentExtended_Conditional_15_Template_mj_explorer_entity_data_grid_AfterDataLoad_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SetSectionRowCount("mJRubricCriteria", $event.totalRowCount)); });
18
+ i0.ɵɵelementEnd()();
19
+ } if (rf & 2) {
20
+ const ctx_r1 = i0.ɵɵnextContext();
21
+ i0.ɵɵadvance();
22
+ i0.ɵɵproperty("Params", ctx_r1.BuildRelationshipViewParamsByEntityName("MJ: Rubric Criteria", "ScaleID"))("NewRecordValues", ctx_r1.NewRecordValues("MJ: Rubric Criteria", "ScaleID"))("AllowLoad", ctx_r1.IsSectionExpanded("mJRubricCriteria"))("ShowToolbar", true);
23
+ } }
24
+ function MJRubricScaleFormComponentExtended_Conditional_17_Template(rf, ctx) { if (rf & 1) {
25
+ const _r3 = i0.ɵɵgetCurrentView();
26
+ i0.ɵɵelementStart(0, "div")(1, "mj-explorer-entity-data-grid", 17);
27
+ i0.ɵɵlistener("Navigate", function MJRubricScaleFormComponentExtended_Conditional_17_Template_mj_explorer_entity_data_grid_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("AfterDataLoad", function MJRubricScaleFormComponentExtended_Conditional_17_Template_mj_explorer_entity_data_grid_AfterDataLoad_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SetSectionRowCount("mJRubricScaleLevels", $event.totalRowCount)); });
28
+ i0.ɵɵelementEnd()();
29
+ } if (rf & 2) {
30
+ const ctx_r1 = i0.ɵɵnextContext();
31
+ i0.ɵɵadvance();
32
+ i0.ɵɵproperty("Params", ctx_r1.BuildRelationshipViewParamsByEntityName("MJ: Rubric Scale Levels", "ScaleID"))("NewRecordValues", ctx_r1.NewRecordValues("MJ: Rubric Scale Levels", "ScaleID"))("AllowLoad", ctx_r1.IsSectionExpanded("mJRubricScaleLevels"))("ShowToolbar", true);
33
+ } }
34
+ const _forTrack0 = ($index, $item) => $item.ID;
35
+ function RubricScaleLevelsPanel_Conditional_1_Template(rf, ctx) { if (rf & 1) {
36
+ i0.ɵɵelementStart(0, "p");
37
+ i0.ɵɵtext(1, "Loading the scale...");
38
+ i0.ɵɵelementEnd();
39
+ } }
40
+ function RubricScaleLevelsPanel_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
41
+ i0.ɵɵelementStart(0, "p", 2);
42
+ i0.ɵɵtext(1);
43
+ i0.ɵɵelementEnd();
44
+ } if (rf & 2) {
45
+ const ctx_r0 = i0.ɵɵnextContext(2);
46
+ i0.ɵɵadvance();
47
+ i0.ɵɵtextInterpolate(ctx_r0.Form.Message);
48
+ } }
49
+ function RubricScaleLevelsPanel_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
50
+ i0.ɵɵelementStart(0, "p", 3);
51
+ i0.ɵɵtext(1, "This scale is used by a published rubric. Level values stay locked. Labels and descriptions stay editable.");
52
+ i0.ɵɵelementEnd();
53
+ } }
54
+ function RubricScaleLevelsPanel_Conditional_2_For_30_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵelementStart(0, "span", 11);
56
+ i0.ɵɵtext(1, "Locked");
57
+ i0.ɵɵelementEnd();
58
+ } }
59
+ function RubricScaleLevelsPanel_Conditional_2_For_30_Conditional_1_Template(rf, ctx) { if (rf & 1) {
60
+ const _r2 = i0.ɵɵgetCurrentView();
61
+ i0.ɵɵelementStart(0, "label");
62
+ i0.ɵɵtext(1, "Value ");
63
+ i0.ɵɵelementStart(2, "span", 9);
64
+ i0.ɵɵelement(3, "input", 10);
65
+ i0.ɵɵconditionalCreate(4, RubricScaleLevelsPanel_Conditional_2_For_30_Conditional_1_Conditional_4_Template, 2, 0, "span", 11);
66
+ i0.ɵɵelementEnd()();
67
+ i0.ɵɵelementStart(5, "label");
68
+ i0.ɵɵtext(6, "Label ");
69
+ i0.ɵɵelementStart(7, "input", 12);
70
+ i0.ɵɵlistener("change", function RubricScaleLevelsPanel_Conditional_2_For_30_Conditional_1_Template_input_change_7_listener($event) { i0.ɵɵrestoreView(_r2); const level_r3 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.Form.OnLabel(level_r3, $event)); });
71
+ i0.ɵɵelementEnd()();
72
+ i0.ɵɵelementStart(8, "label");
73
+ i0.ɵɵtext(9, "Description ");
74
+ i0.ɵɵelementStart(10, "input", 12);
75
+ i0.ɵɵlistener("change", function RubricScaleLevelsPanel_Conditional_2_For_30_Conditional_1_Template_input_change_10_listener($event) { i0.ɵɵrestoreView(_r2); const level_r3 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.Form.OnDescription(level_r3, $event)); });
76
+ i0.ɵɵelementEnd()();
77
+ } if (rf & 2) {
78
+ const level_r3 = i0.ɵɵnextContext().$implicit;
79
+ const ctx_r0 = i0.ɵɵnextContext(2);
80
+ i0.ɵɵadvance(3);
81
+ i0.ɵɵproperty("value", level_r3.Value)("disabled", ctx_r0.Form.Frozen);
82
+ i0.ɵɵadvance();
83
+ i0.ɵɵconditional(ctx_r0.Form.Frozen ? 4 : -1);
84
+ i0.ɵɵadvance(3);
85
+ i0.ɵɵproperty("value", level_r3.Label);
86
+ i0.ɵɵadvance(3);
87
+ i0.ɵɵproperty("value", level_r3.Description);
88
+ } }
89
+ function RubricScaleLevelsPanel_Conditional_2_For_30_Conditional_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
90
+ i0.ɵɵelementStart(0, "span", 11);
91
+ i0.ɵɵtext(1, "Locked");
92
+ i0.ɵɵelementEnd();
93
+ } }
94
+ function RubricScaleLevelsPanel_Conditional_2_For_30_Conditional_2_Template(rf, ctx) { if (rf & 1) {
95
+ i0.ɵɵelementStart(0, "p")(1, "span");
96
+ i0.ɵɵtext(2, "Value");
97
+ i0.ɵɵelementEnd();
98
+ i0.ɵɵtext(3);
99
+ i0.ɵɵconditionalCreate(4, RubricScaleLevelsPanel_Conditional_2_For_30_Conditional_2_Conditional_4_Template, 2, 0, "span", 11);
100
+ i0.ɵɵelementEnd();
101
+ i0.ɵɵelementStart(5, "p")(6, "span");
102
+ i0.ɵɵtext(7, "Label");
103
+ i0.ɵɵelementEnd();
104
+ i0.ɵɵtext(8);
105
+ i0.ɵɵelementEnd();
106
+ i0.ɵɵelementStart(9, "p")(10, "span");
107
+ i0.ɵɵtext(11, "Description");
108
+ i0.ɵɵelementEnd();
109
+ i0.ɵɵtext(12);
110
+ i0.ɵɵelementEnd();
111
+ } if (rf & 2) {
112
+ const level_r3 = i0.ɵɵnextContext().$implicit;
113
+ const ctx_r0 = i0.ɵɵnextContext(2);
114
+ i0.ɵɵadvance(3);
115
+ i0.ɵɵtextInterpolate1(" ", level_r3.Value);
116
+ i0.ɵɵadvance();
117
+ i0.ɵɵconditional(ctx_r0.Form.Frozen ? 4 : -1);
118
+ i0.ɵɵadvance(4);
119
+ i0.ɵɵtextInterpolate1(" ", level_r3.Label);
120
+ i0.ɵɵadvance(4);
121
+ i0.ɵɵtextInterpolate1(" ", level_r3.Description);
122
+ } }
123
+ function RubricScaleLevelsPanel_Conditional_2_For_30_Template(rf, ctx) { if (rf & 1) {
124
+ i0.ɵɵelementStart(0, "li", 8);
125
+ i0.ɵɵconditionalCreate(1, RubricScaleLevelsPanel_Conditional_2_For_30_Conditional_1_Template, 11, 5)(2, RubricScaleLevelsPanel_Conditional_2_For_30_Conditional_2_Template, 13, 4);
126
+ i0.ɵɵelementEnd();
127
+ } if (rf & 2) {
128
+ const ctx_r0 = i0.ɵɵnextContext(2);
129
+ i0.ɵɵadvance();
130
+ i0.ɵɵconditional(ctx_r0.Form.EditMode ? 1 : 2);
131
+ } }
132
+ function RubricScaleLevelsPanel_Conditional_2_Template(rf, ctx) { if (rf & 1) {
133
+ i0.ɵɵelementStart(0, "section", 1);
134
+ i0.ɵɵconditionalCreate(1, RubricScaleLevelsPanel_Conditional_2_Conditional_1_Template, 2, 1, "p", 2);
135
+ i0.ɵɵconditionalCreate(2, RubricScaleLevelsPanel_Conditional_2_Conditional_2_Template, 2, 0, "p", 3);
136
+ i0.ɵɵelementStart(3, "div", 4)(4, "h2");
137
+ i0.ɵɵelement(5, "i", 5);
138
+ i0.ɵɵtext(6);
139
+ i0.ɵɵelementEnd();
140
+ i0.ɵɵelementStart(7, "div", 6)(8, "div")(9, "span");
141
+ i0.ɵɵtext(10, "Name");
142
+ i0.ɵɵelementEnd();
143
+ i0.ɵɵelementStart(11, "strong");
144
+ i0.ɵɵtext(12);
145
+ i0.ɵɵelementEnd()();
146
+ i0.ɵɵelementStart(13, "div")(14, "span");
147
+ i0.ɵɵtext(15, "Type");
148
+ i0.ɵɵelementEnd();
149
+ i0.ɵɵelementStart(16, "strong");
150
+ i0.ɵɵtext(17);
151
+ i0.ɵɵelementEnd()();
152
+ i0.ɵɵelementStart(18, "div")(19, "span");
153
+ i0.ɵɵtext(20, "Direction");
154
+ i0.ɵɵelementEnd();
155
+ i0.ɵɵelementStart(21, "strong");
156
+ i0.ɵɵtext(22);
157
+ i0.ɵɵelementEnd()();
158
+ i0.ɵɵelementStart(23, "div")(24, "span");
159
+ i0.ɵɵtext(25, "Range");
160
+ i0.ɵɵelementEnd();
161
+ i0.ɵɵelementStart(26, "strong");
162
+ i0.ɵɵtext(27);
163
+ i0.ɵɵelementEnd()()()();
164
+ i0.ɵɵelementStart(28, "ul", 7);
165
+ i0.ɵɵrepeaterCreate(29, RubricScaleLevelsPanel_Conditional_2_For_30_Template, 3, 1, "li", 8, _forTrack0);
166
+ i0.ɵɵelementEnd()();
167
+ } if (rf & 2) {
168
+ const ctx_r0 = i0.ɵɵnextContext();
169
+ i0.ɵɵadvance();
170
+ i0.ɵɵconditional(ctx_r0.Form.Message ? 1 : -1);
171
+ i0.ɵɵadvance();
172
+ i0.ɵɵconditional(ctx_r0.Form.EditMode && ctx_r0.Form.Frozen ? 2 : -1);
173
+ i0.ɵɵadvance(4);
174
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.Record.Name);
175
+ i0.ɵɵadvance(6);
176
+ i0.ɵɵtextInterpolate(ctx_r0.Record.Name);
177
+ i0.ɵɵadvance(5);
178
+ i0.ɵɵtextInterpolate(ctx_r0.Record.ScaleType);
179
+ i0.ɵɵadvance(5);
180
+ i0.ɵɵtextInterpolate(ctx_r0.Record.HigherIsBetter ? "Higher is better" : "Lower is better");
181
+ i0.ɵɵadvance(5);
182
+ i0.ɵɵtextInterpolate2("", ctx_r0.Form.RangeMin, " to ", ctx_r0.Form.RangeMax);
183
+ i0.ɵɵadvance(2);
184
+ i0.ɵɵrepeater(ctx_r0.Form.Levels);
185
+ } }
186
+ /** Scale form. Loads the levels and saves a label edit. */
187
+ let MJRubricScaleFormComponentExtended = class MJRubricScaleFormComponentExtended extends MJRubricScaleFormComponent {
188
+ constructor() {
189
+ super(...arguments);
190
+ this.Loading = true;
191
+ this.Frozen = false;
192
+ this.Levels = [];
193
+ this.Message = '';
194
+ }
195
+ get RangeMin() {
196
+ const values = this.Levels.map(level => Number(level.Value)).filter(value => Number.isFinite(value));
197
+ return values.length ? String(Math.min(...values)) : '';
198
+ }
199
+ get RangeMax() {
200
+ const values = this.Levels.map(level => Number(level.Value)).filter(value => Number.isFinite(value));
201
+ return values.length ? String(Math.max(...values)) : '';
202
+ }
203
+ async ngOnInit() {
204
+ await super.ngOnInit();
205
+ await this.LoadLevels();
206
+ }
207
+ async LoadLevels() {
208
+ this.Loading = true;
209
+ try {
210
+ const view = RunView.FromMetadataProvider(this.ProviderToUse);
211
+ const result = await view.RunView({
212
+ EntityName: 'MJ: Rubric Scale Levels',
213
+ ExtraFilter: `ScaleID='${this.record.ID}'`,
214
+ ResultType: 'simple',
215
+ MaxRows: 200,
216
+ }, this.ProviderToUse.CurrentUser);
217
+ if (!result.Success) {
218
+ this.Message = result.ErrorMessage || 'Could not load the scale levels.';
219
+ return;
220
+ }
221
+ this.Levels = (result.Results ?? []);
222
+ const used = await view.RunView({
223
+ EntityName: 'MJ: Rubric Criteria',
224
+ ExtraFilter: `ScaleID='${this.record.ID}'`,
225
+ ResultType: 'simple',
226
+ MaxRows: 50,
227
+ }, this.ProviderToUse.CurrentUser);
228
+ if (!used.Success) {
229
+ this.Message = used.ErrorMessage || 'Could not load criteria that use this scale.';
230
+ return;
231
+ }
232
+ const versionIds = [...new Set((used.Results ?? []).map(row => row.RubricVersionID).filter((id) => !!id))];
233
+ const published = versionIds.length === 0 ? { Success: true, Results: [] } : await view.RunView({
234
+ EntityName: 'MJ: Rubric Versions',
235
+ ExtraFilter: `Status='Published' AND ID IN (${versionIds.map(id => `'${id}'`).join(',')})`,
236
+ ResultType: 'simple',
237
+ MaxRows: 1,
238
+ }, this.ProviderToUse.CurrentUser);
239
+ if (!published.Success) {
240
+ const message = 'ErrorMessage' in published ? published.ErrorMessage : '';
241
+ this.Message = message || 'Could not check whether this scale is published.';
242
+ return;
243
+ }
244
+ this.Frozen = (published.Results ?? []).length > 0;
245
+ }
246
+ finally {
247
+ this.Loading = false;
248
+ }
249
+ }
250
+ async OnLabel(level, event) {
251
+ const label = event.target.value;
252
+ const row = await this.level(String(level.ID));
253
+ if (!row)
254
+ return;
255
+ row.Label = label;
256
+ if (!await row.Save()) {
257
+ this.Message = row.LatestResult?.Message || 'Could not save the label.';
258
+ return;
259
+ }
260
+ level.Label = label;
261
+ this.Message = '';
262
+ }
263
+ async OnDescription(level, event) {
264
+ const description = event.target.value;
265
+ const row = await this.level(String(level.ID));
266
+ if (!row)
267
+ return;
268
+ row.Description = description;
269
+ if (!await row.Save()) {
270
+ this.Message = row.LatestResult?.Message || 'Could not save the description.';
271
+ return;
272
+ }
273
+ level.Description = description;
274
+ this.Message = '';
275
+ }
276
+ async level(id) {
277
+ const row = await this.ProviderToUse.GetEntityObject('MJ: Rubric Scale Levels', this.ProviderToUse.CurrentUser);
278
+ const loaded = await row.InnerLoad(CompositeKey.FromID(id));
279
+ if (!loaded) {
280
+ this.Message = 'The scale level was not found.';
281
+ return null;
282
+ }
283
+ return row;
284
+ }
285
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵMJRubricScaleFormComponentExtended_BaseFactory; return function MJRubricScaleFormComponentExtended_Factory(__ngFactoryType__) { return (ɵMJRubricScaleFormComponentExtended_BaseFactory || (ɵMJRubricScaleFormComponentExtended_BaseFactory = i0.ɵɵgetInheritedFactory(MJRubricScaleFormComponentExtended)))(__ngFactoryType__ || MJRubricScaleFormComponentExtended); }; })(); }
286
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJRubricScaleFormComponentExtended, selectors: [["mj-rubric-scale-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 19, vars: 69, consts: [[3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent"], ["Slot", "before-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["SectionKey", "details", "SectionName", "Details", "Icon", "fa fa-align-left", 3, "Form", "FormContext"], ["FieldName", "Name", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Description", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ScaleType", "Type", "select", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "MinValue", "Type", "number", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "MaxValue", "Type", "number", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Step", "Type", "number", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "HigherIsBetter", "Type", "checkbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Status", "Type", "select", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "__mj_CreatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "__mj_UpdatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["Slot", "after-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["SectionKey", "mJRubricCriteria", "SectionName", "Rubric Criteria", "Icon", "fa fa-table", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], ["SectionKey", "mJRubricScaleLevels", "SectionName", "Rubric Scale Levels", "Icon", "fa fa-table", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], ["Slot", "after-related", 3, "Entity", "Record", "FormComponent", "FormContext"], [3, "Navigate", "AfterDataLoad", "Params", "NewRecordValues", "AllowLoad", "ShowToolbar"]], template: function MJRubricScaleFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
287
+ i0.ɵɵelementStart(0, "mj-record-form-container", 0);
288
+ i0.ɵɵlistener("Navigate", function MJRubricScaleFormComponentExtended_Template_mj_record_form_container_Navigate_0_listener($event) { return ctx.OnFormNavigate($event); })("DeleteRequested", function MJRubricScaleFormComponentExtended_Template_mj_record_form_container_DeleteRequested_0_listener() { return ctx.OnDeleteRequested(); })("FavoriteToggled", function MJRubricScaleFormComponentExtended_Template_mj_record_form_container_FavoriteToggled_0_listener() { return ctx.OnFavoriteToggled(); })("HistoryRequested", function MJRubricScaleFormComponentExtended_Template_mj_record_form_container_HistoryRequested_0_listener() { return ctx.OnHistoryRequested(); })("ListManagementRequested", function MJRubricScaleFormComponentExtended_Template_mj_record_form_container_ListManagementRequested_0_listener() { return ctx.OnListManagementRequested(); });
289
+ i0.ɵɵelement(1, "mj-form-panel-slot", 1);
290
+ i0.ɵɵelementStart(2, "mj-collapsible-panel", 2);
291
+ i0.ɵɵelement(3, "mj-form-field", 3)(4, "mj-form-field", 4)(5, "mj-form-field", 5)(6, "mj-form-field", 6)(7, "mj-form-field", 7)(8, "mj-form-field", 8)(9, "mj-form-field", 9)(10, "mj-form-field", 10)(11, "mj-form-field", 11)(12, "mj-form-field", 12);
292
+ i0.ɵɵelementEnd();
293
+ i0.ɵɵelement(13, "mj-form-panel-slot", 13);
294
+ i0.ɵɵelementStart(14, "mj-collapsible-panel", 14);
295
+ i0.ɵɵconditionalCreate(15, MJRubricScaleFormComponentExtended_Conditional_15_Template, 2, 4, "div");
296
+ i0.ɵɵelementEnd();
297
+ i0.ɵɵelementStart(16, "mj-collapsible-panel", 15);
298
+ i0.ɵɵconditionalCreate(17, MJRubricScaleFormComponentExtended_Conditional_17_Template, 2, 4, "div");
299
+ i0.ɵɵelementEnd();
300
+ i0.ɵɵelement(18, "mj-form-panel-slot", 16);
301
+ i0.ɵɵelementEnd();
302
+ } if (rf & 2) {
303
+ i0.ɵɵproperty("Record", ctx.record)("FormComponent", ctx);
304
+ i0.ɵɵadvance();
305
+ i0.ɵɵproperty("Entity", i0.ɵɵinterpolate(ctx.record.EntityInfo.Name))("Record", ctx.record)("FormComponent", ctx)("FormContext", ctx.formContext);
306
+ i0.ɵɵadvance();
307
+ i0.ɵɵproperty("Form", ctx)("FormContext", ctx.formContext);
308
+ i0.ɵɵadvance();
309
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
310
+ i0.ɵɵadvance();
311
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
312
+ i0.ɵɵadvance();
313
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
314
+ i0.ɵɵadvance();
315
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
316
+ i0.ɵɵadvance();
317
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
318
+ i0.ɵɵadvance();
319
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
320
+ i0.ɵɵadvance();
321
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
322
+ i0.ɵɵadvance();
323
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
324
+ i0.ɵɵadvance();
325
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
326
+ i0.ɵɵadvance();
327
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
328
+ i0.ɵɵadvance();
329
+ i0.ɵɵproperty("Entity", i0.ɵɵinterpolate(ctx.record.EntityInfo.Name))("Record", ctx.record)("FormComponent", ctx)("FormContext", ctx.formContext);
330
+ i0.ɵɵadvance();
331
+ i0.ɵɵproperty("Form", ctx)("FormContext", ctx.formContext)("BadgeCount", ctx.GetSectionRowCount("mJRubricCriteria"))("DefaultExpanded", false);
332
+ i0.ɵɵadvance();
333
+ i0.ɵɵconditional(ctx.record.IsSaved ? 15 : -1);
334
+ i0.ɵɵadvance();
335
+ i0.ɵɵproperty("Form", ctx)("FormContext", ctx.formContext)("BadgeCount", ctx.GetSectionRowCount("mJRubricScaleLevels"))("DefaultExpanded", false);
336
+ i0.ɵɵadvance();
337
+ i0.ɵɵconditional(ctx.record.IsSaved ? 17 : -1);
338
+ i0.ɵɵadvance();
339
+ i0.ɵɵproperty("Entity", i0.ɵɵinterpolate(ctx.record.EntityInfo.Name))("Record", ctx.record)("FormComponent", ctx)("FormContext", ctx.formContext);
340
+ } }, dependencies: [i1.MjFormFieldComponent, i1.MjCollapsiblePanelComponent, i1.MjRecordFormContainerComponent, i1.ExplorerEntityDataGridComponent, i1.FormPanelSlotComponent], encapsulation: 2 }); }
341
+ };
342
+ MJRubricScaleFormComponentExtended = __decorate([
343
+ RegisterClass(BaseFormComponent, 'MJ: Rubric Scales')
344
+ ], MJRubricScaleFormComponentExtended);
345
+ export { MJRubricScaleFormComponentExtended };
346
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJRubricScaleFormComponentExtended, [{
347
+ type: Component,
348
+ args: [{ standalone: false, selector: 'mj-rubric-scale-form', template: "<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=\"ScaleType\"\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=\"MinValue\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"MaxValue\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Step\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"HigherIsBetter\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\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 <!-- Rubric Criteria Section -->\n <mj-collapsible-panel\n SectionKey=\"mJRubricCriteria\"\n SectionName=\"Rubric Criteria\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJRubricCriteria')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Rubric Criteria','ScaleID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Rubric Criteria','ScaleID')\"\n [AllowLoad]=\"IsSectionExpanded('mJRubricCriteria')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJRubricCriteria', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Rubric Scale Levels Section -->\n <mj-collapsible-panel\n SectionKey=\"mJRubricScaleLevels\"\n SectionName=\"Rubric Scale Levels\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJRubricScaleLevels')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Rubric Scale Levels','ScaleID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Rubric Scale Levels','ScaleID')\"\n [AllowLoad]=\"IsSectionExpanded('mJRubricScaleLevels')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJRubricScaleLevels', $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 " }]
349
+ }], null, null); })();
350
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJRubricScaleFormComponentExtended, { className: "MJRubricScaleFormComponentExtended", filePath: "src/lib/custom/Rubrics/scale-form.component.ts", lineNumber: 15 }); })();
351
+ /** The scale record uses the left-nav rail. The level editor is its own item. */
352
+ let RubricScaleFormPolicy = class RubricScaleFormPolicy extends BaseFormPolicy {
353
+ DecorateChrome(spec, _ctx) {
354
+ return { ...spec, Layout: 'left-nav' };
355
+ }
356
+ };
357
+ RubricScaleFormPolicy = __decorate([
358
+ RegisterClassEx(BaseFormPolicy, { key: 'MJ: Rubric Scales', metadata: { entity: 'MJ: Rubric Scales' } })
359
+ ], RubricScaleFormPolicy);
360
+ export { RubricScaleFormPolicy };
361
+ let RubricScaleLevelsPanel = class RubricScaleLevelsPanel extends BaseFormPanel {
362
+ get Form() {
363
+ return this.FormComponent;
364
+ }
365
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵRubricScaleLevelsPanel_BaseFactory; return function RubricScaleLevelsPanel_Factory(__ngFactoryType__) { return (ɵRubricScaleLevelsPanel_BaseFactory || (ɵRubricScaleLevelsPanel_BaseFactory = i0.ɵɵgetInheritedFactory(RubricScaleLevelsPanel)))(__ngFactoryType__ || RubricScaleLevelsPanel); }; })(); }
366
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RubricScaleLevelsPanel, selectors: [["mj-rubric-scale-levels-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 4, consts: [["SectionKey", "rubric-scale-levels", "SectionName", "Levels", "Icon", "fa-solid fa-sliders", 3, "Form", "FormContext", "DefaultExpanded"], [1, "scale-sheet"], ["role", "alert", 1, "callout"], [1, "callout"], [1, "scale-card"], [1, "fa-solid", "fa-sliders"], [1, "property-row"], [1, "level-list"], [1, "level-row"], [1, "value-lock"], ["type", "text", 3, "value", "disabled"], [1, "pill"], ["type", "text", 3, "change", "value"]], template: function RubricScaleLevelsPanel_Template(rf, ctx) { if (rf & 1) {
367
+ i0.ɵɵelementStart(0, "mj-collapsible-panel", 0);
368
+ i0.ɵɵconditionalCreate(1, RubricScaleLevelsPanel_Conditional_1_Template, 2, 0, "p")(2, RubricScaleLevelsPanel_Conditional_2_Template, 31, 8, "section", 1);
369
+ i0.ɵɵelementEnd();
370
+ } if (rf & 2) {
371
+ i0.ɵɵproperty("Form", ctx.FormComponent)("FormContext", ctx.FormContext)("DefaultExpanded", true);
372
+ i0.ɵɵadvance();
373
+ i0.ɵɵconditional(ctx.Form.Loading ? 1 : 2);
374
+ } }, dependencies: [BaseFormsModule, i1.MjCollapsiblePanelComponent], styles: ["[_nghost-%COMP%] { display: block; color: var(--mj-text-primary); color-scheme: light; }\n[data-theme='dark'][_nghost-%COMP%], [data-theme='dark'] [_nghost-%COMP%] { color-scheme: dark; }\n\n.scale-card[_ngcontent-%COMP%], .level-row[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 8px);\n box-shadow: var(--mj-shadow-sm);\n}\n.scale-card[_ngcontent-%COMP%] { padding: var(--mj-space-4, 1rem); }\n.scale-card[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] { margin: 0 0 0.75rem; font-size: 1.15rem; color: var(--mj-text-primary); }\n.scale-card[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-color-brand-500); margin-right: 0.35rem; }\n.callout[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border: 1px solid var(--mj-status-warning-border);\n border-radius: var(--mj-radius-md, 6px);\n padding: 0.75rem 1rem;\n}\n\ninput[_ngcontent-%COMP%], \nselect[_ngcontent-%COMP%], \ntextarea[_ngcontent-%COMP%] {\n box-sizing: border-box;\n width: 100%;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n border: 1px solid var(--mj-border-strong);\n border-radius: var(--mj-radius-sm, 4px);\n padding: 0.35rem 0.55rem;\n font: inherit;\n color-scheme: inherit;\n}\n\n.scale-sheet[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: var(--mj-space-3, 0.75rem); }\n\n.property-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: var(--mj-space-3, 0.75rem);\n margin-top: var(--mj-space-3, 0.75rem);\n}\n\n.value-lock[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 0.4rem; }\n\n.property-row[_ngcontent-%COMP%] div[_ngcontent-%COMP%], \n.level-row[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.property-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%], \n.level-row[_ngcontent-%COMP%] label[_ngcontent-%COMP%] { font-size: 0.85rem; color: var(--mj-text-secondary); }\n.property-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] { color: var(--mj-text-primary); }\n\n.level-list[_ngcontent-%COMP%] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--mj-space-3, 0.75rem); }\n\n.level-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 8rem 1fr 2fr;\n gap: var(--mj-space-3, 0.75rem);\n align-items: end;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 6px);\n padding: 0.6rem 0.75rem;\n}\n\n.pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 0.15rem 0.55rem;\n border-radius: 999px;\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n font-size: 0.75rem;\n}\n\n@media (max-width: 520px) {\n .property-row[_ngcontent-%COMP%], \n .level-row[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n}"] }); }
375
+ };
376
+ RubricScaleLevelsPanel = __decorate([
377
+ RegisterClassEx(BaseFormPanel, {
378
+ key: 'form-panel:MJRubricScales:levels',
379
+ metadata: {
380
+ entity: 'MJ: Rubric Scales',
381
+ slot: 'before-fields',
382
+ sortKey: 100,
383
+ contributionKey: 'rubric-scale-levels',
384
+ inclusion: 'Primary',
385
+ leadsWhenUnsaved: true,
386
+ },
387
+ })
388
+ ], RubricScaleLevelsPanel);
389
+ export { RubricScaleLevelsPanel };
390
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RubricScaleLevelsPanel, [{
391
+ type: Component,
392
+ args: [{ selector: 'mj-rubric-scale-levels-panel', standalone: true, imports: [BaseFormsModule], template: "<mj-collapsible-panel SectionKey=\"rubric-scale-levels\" SectionName=\"Levels\" Icon=\"fa-solid fa-sliders\" [Form]=\"FormComponent\" [FormContext]=\"FormContext\" [DefaultExpanded]=\"true\">\n @if (Form.Loading) {\n <p>Loading the scale...</p>\n } @else {\n <section class=\"scale-sheet\">\n @if (Form.Message) {\n <p class=\"callout\" role=\"alert\">{{ Form.Message }}</p>\n }\n @if (Form.EditMode && Form.Frozen) {\n <p class=\"callout\">This scale is used by a published rubric. Level values stay locked. Labels and descriptions stay editable.</p>\n }\n <div class=\"scale-card\">\n <h2><i class=\"fa-solid fa-sliders\"></i> {{ Record.Name }}</h2>\n <div class=\"property-row\">\n <div><span>Name</span><strong>{{ Record.Name }}</strong></div>\n <div><span>Type</span><strong>{{ Record.ScaleType }}</strong></div>\n <div><span>Direction</span><strong>{{ Record.HigherIsBetter ? 'Higher is better' : 'Lower is better' }}</strong></div>\n <div><span>Range</span><strong>{{ Form.RangeMin }} to {{ Form.RangeMax }}</strong></div>\n </div>\n </div>\n <ul class=\"level-list\">\n @for (level of Form.Levels; track level.ID) {\n <li class=\"level-row\">\n @if (Form.EditMode) {\n <label>Value\n <span class=\"value-lock\">\n <input type=\"text\" [value]=\"level.Value\" [disabled]=\"Form.Frozen\" />\n @if (Form.Frozen) { <span class=\"pill\">Locked</span> }\n </span>\n </label>\n <label>Label\n <input type=\"text\" [value]=\"level.Label\" (change)=\"Form.OnLabel(level, $event)\" />\n </label>\n <label>Description\n <input type=\"text\" [value]=\"level.Description\" (change)=\"Form.OnDescription(level, $event)\" />\n </label>\n } @else {\n <p><span>Value</span> {{ level.Value }}@if (Form.Frozen) { <span class=\"pill\">Locked</span> }</p>\n <p><span>Label</span> {{ level.Label }}</p>\n <p><span>Description</span> {{ level.Description }}</p>\n }\n </li>\n }\n </ul>\n </section>\n }\n</mj-collapsible-panel>\n", styles: [":host { display: block; color: var(--mj-text-primary); color-scheme: light; }\n:host-context([data-theme='dark']) { color-scheme: dark; }\n\n.scale-card, .level-row {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 8px);\n box-shadow: var(--mj-shadow-sm);\n}\n.scale-card { padding: var(--mj-space-4, 1rem); }\n.scale-card h2 { margin: 0 0 0.75rem; font-size: 1.15rem; color: var(--mj-text-primary); }\n.scale-card h2 i { color: var(--mj-color-brand-500); margin-right: 0.35rem; }\n.callout {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border: 1px solid var(--mj-status-warning-border);\n border-radius: var(--mj-radius-md, 6px);\n padding: 0.75rem 1rem;\n}\n\ninput,\nselect,\ntextarea {\n box-sizing: border-box;\n width: 100%;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n border: 1px solid var(--mj-border-strong);\n border-radius: var(--mj-radius-sm, 4px);\n padding: 0.35rem 0.55rem;\n font: inherit;\n color-scheme: inherit;\n}\n\n.scale-sheet { display: flex; flex-direction: column; gap: var(--mj-space-3, 0.75rem); }\n\n.property-row {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: var(--mj-space-3, 0.75rem);\n margin-top: var(--mj-space-3, 0.75rem);\n}\n\n.value-lock { display: flex; align-items: center; gap: 0.4rem; }\n\n.property-row div,\n.level-row label {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.property-row span,\n.level-row label { font-size: 0.85rem; color: var(--mj-text-secondary); }\n.property-row strong { color: var(--mj-text-primary); }\n\n.level-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--mj-space-3, 0.75rem); }\n\n.level-row {\n display: grid;\n grid-template-columns: 8rem 1fr 2fr;\n gap: var(--mj-space-3, 0.75rem);\n align-items: end;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 6px);\n padding: 0.6rem 0.75rem;\n}\n\n.pill {\n display: inline-flex;\n align-items: center;\n padding: 0.15rem 0.55rem;\n border-radius: 999px;\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n font-size: 0.75rem;\n}\n\n@media (max-width: 520px) {\n .property-row,\n .level-row { grid-template-columns: 1fr; }\n}\n"] }]
393
+ }], null, null); })();
394
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RubricScaleLevelsPanel, { className: "RubricScaleLevelsPanel", filePath: "src/lib/custom/Rubrics/scale-form.component.ts", lineNumber: 143 }); })();
395
+ //# sourceMappingURL=scale-form.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scale-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Rubrics/scale-form.component.ts","../../../../src/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.html","../../../../src/lib/custom/Rubrics/scale-form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component } from '@angular/core';\nimport { CompositeKey, RunView } from '@memberjunction/core';\nimport { MJRubricScaleEntity, MJRubricScaleLevelEntity } from '@memberjunction/core-entities';\nimport { RegisterClass, RegisterClassEx } from '@memberjunction/global';\nimport { BaseFormComponent, BaseFormPanel, BaseFormPolicy, BaseFormsModule, type FormChromeContext, type FormChromeSpec } from '@memberjunction/ng-base-forms';\nimport { MJRubricScaleFormComponent } from '../../generated/Entities/MJRubricScale/mjrubricscale.form.component';\n\n/** Scale form. Loads the levels and saves a label edit. */\n@RegisterClass(BaseFormComponent, 'MJ: Rubric Scales')\n@Component({\n standalone: false,\n selector: 'mj-rubric-scale-form',\n templateUrl: '../../generated/Entities/MJRubricScale/mjrubricscale.form.component.html',\n})\nexport class MJRubricScaleFormComponentExtended extends MJRubricScaleFormComponent {\n public override record!: MJRubricScaleEntity;\n public Loading = true;\n public Frozen = false;\n public Levels: Record<string, unknown>[] = [];\n public Message = '';\n\n public get RangeMin(): string {\n const values = this.Levels.map(level => Number(level.Value)).filter(value => Number.isFinite(value));\n return values.length ? String(Math.min(...values)) : '';\n }\n\n public get RangeMax(): string {\n const values = this.Levels.map(level => Number(level.Value)).filter(value => Number.isFinite(value));\n return values.length ? String(Math.max(...values)) : '';\n }\n\n public override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n await this.LoadLevels();\n }\n\n public async LoadLevels(): Promise<void> {\n this.Loading = true;\n try {\n const view = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await view.RunView({\n EntityName: 'MJ: Rubric Scale Levels',\n ExtraFilter: `ScaleID='${this.record.ID}'`,\n ResultType: 'simple',\n MaxRows: 200,\n }, this.ProviderToUse.CurrentUser);\n if (!result.Success) {\n this.Message = result.ErrorMessage || 'Could not load the scale levels.';\n return;\n }\n this.Levels = (result.Results ?? []) as Record<string, unknown>[];\n const used = await view.RunView({\n EntityName: 'MJ: Rubric Criteria',\n ExtraFilter: `ScaleID='${this.record.ID}'`,\n ResultType: 'simple',\n MaxRows: 50,\n }, this.ProviderToUse.CurrentUser);\n if (!used.Success) {\n this.Message = used.ErrorMessage || 'Could not load criteria that use this scale.';\n return;\n }\n const versionIds = [...new Set(((used.Results ?? []) as { RubricVersionID?: string }[]).map(row => row.RubricVersionID).filter((id): id is string => !!id))];\n const published = versionIds.length === 0 ? { Success: true, Results: [] as unknown[] } : await view.RunView({\n EntityName: 'MJ: Rubric Versions',\n ExtraFilter: `Status='Published' AND ID IN (${versionIds.map(id => `'${id}'`).join(',')})`,\n ResultType: 'simple',\n MaxRows: 1,\n }, this.ProviderToUse.CurrentUser);\n if (!published.Success) {\n const message = 'ErrorMessage' in published ? published.ErrorMessage : '';\n this.Message = message || 'Could not check whether this scale is published.';\n return;\n }\n this.Frozen = (published.Results ?? []).length > 0;\n } finally {\n this.Loading = false;\n }\n }\n\n public async OnLabel(level: Record<string, unknown>, event: Event): Promise<void> {\n const label = (event.target as HTMLInputElement).value;\n const row = await this.level(String(level.ID));\n if (!row) return;\n row.Label = label;\n if (!await row.Save()) {\n this.Message = row.LatestResult?.Message || 'Could not save the label.';\n return;\n }\n level.Label = label;\n this.Message = '';\n }\n\n public async OnDescription(level: Record<string, unknown>, event: Event): Promise<void> {\n const description = (event.target as HTMLInputElement).value;\n const row = await this.level(String(level.ID));\n if (!row) return;\n row.Description = description;\n if (!await row.Save()) {\n this.Message = row.LatestResult?.Message || 'Could not save the description.';\n return;\n }\n level.Description = description;\n this.Message = '';\n }\n\n private async level(id: string): Promise<MJRubricScaleLevelEntity | null> {\n const row = await this.ProviderToUse.GetEntityObject<MJRubricScaleLevelEntity>('MJ: Rubric Scale Levels', this.ProviderToUse.CurrentUser);\n const loaded = await row.InnerLoad(CompositeKey.FromID(id));\n if (!loaded) {\n this.Message = 'The scale level was not found.';\n return null;\n }\n return row;\n }\n}\n\n/** The scale record uses the left-nav rail. The level editor is its own item. */\n@RegisterClassEx(BaseFormPolicy, { key: 'MJ: Rubric Scales', metadata: { entity: 'MJ: Rubric Scales' } })\nexport class RubricScaleFormPolicy extends BaseFormPolicy {\n public override DecorateChrome(spec: FormChromeSpec, _ctx: FormChromeContext): FormChromeSpec {\n return { ...spec, Layout: 'left-nav' };\n }\n}\n\n@RegisterClassEx(BaseFormPanel, {\n key: 'form-panel:MJRubricScales:levels',\n metadata: {\n entity: 'MJ: Rubric Scales',\n slot: 'before-fields',\n sortKey: 100,\n contributionKey: 'rubric-scale-levels',\n inclusion: 'Primary',\n leadsWhenUnsaved: true,\n },\n})\n@Component({\n selector: 'mj-rubric-scale-levels-panel',\n standalone: true,\n imports: [BaseFormsModule],\n styleUrls: ['./scale-form.component.css'],\n templateUrl: './scale-form.component.html',\n})\nexport class RubricScaleLevelsPanel extends BaseFormPanel<MJRubricScaleEntity> {\n public get Form(): MJRubricScaleFormComponentExtended {\n return this.FormComponent as MJRubricScaleFormComponentExtended;\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=\"ScaleType\"\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=\"MinValue\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"MaxValue\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Step\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"HigherIsBetter\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\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 <!-- Rubric Criteria Section -->\n <mj-collapsible-panel\n SectionKey=\"mJRubricCriteria\"\n SectionName=\"Rubric Criteria\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJRubricCriteria')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Rubric Criteria','ScaleID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Rubric Criteria','ScaleID')\"\n [AllowLoad]=\"IsSectionExpanded('mJRubricCriteria')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJRubricCriteria', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Rubric Scale Levels Section -->\n <mj-collapsible-panel\n SectionKey=\"mJRubricScaleLevels\"\n SectionName=\"Rubric Scale Levels\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJRubricScaleLevels')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Rubric Scale Levels','ScaleID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Rubric Scale Levels','ScaleID')\"\n [AllowLoad]=\"IsSectionExpanded('mJRubricScaleLevels')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJRubricScaleLevels', $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 ","<mj-collapsible-panel SectionKey=\"rubric-scale-levels\" SectionName=\"Levels\" Icon=\"fa-solid fa-sliders\" [Form]=\"FormComponent\" [FormContext]=\"FormContext\" [DefaultExpanded]=\"true\">\n @if (Form.Loading) {\n <p>Loading the scale...</p>\n } @else {\n <section class=\"scale-sheet\">\n @if (Form.Message) {\n <p class=\"callout\" role=\"alert\">{{ Form.Message }}</p>\n }\n @if (Form.EditMode && Form.Frozen) {\n <p class=\"callout\">This scale is used by a published rubric. Level values stay locked. Labels and descriptions stay editable.</p>\n }\n <div class=\"scale-card\">\n <h2><i class=\"fa-solid fa-sliders\"></i> {{ Record.Name }}</h2>\n <div class=\"property-row\">\n <div><span>Name</span><strong>{{ Record.Name }}</strong></div>\n <div><span>Type</span><strong>{{ Record.ScaleType }}</strong></div>\n <div><span>Direction</span><strong>{{ Record.HigherIsBetter ? 'Higher is better' : 'Lower is better' }}</strong></div>\n <div><span>Range</span><strong>{{ Form.RangeMin }} to {{ Form.RangeMax }}</strong></div>\n </div>\n </div>\n <ul class=\"level-list\">\n @for (level of Form.Levels; track level.ID) {\n <li class=\"level-row\">\n @if (Form.EditMode) {\n <label>Value\n <span class=\"value-lock\">\n <input type=\"text\" [value]=\"level.Value\" [disabled]=\"Form.Frozen\" />\n @if (Form.Frozen) { <span class=\"pill\">Locked</span> }\n </span>\n </label>\n <label>Label\n <input type=\"text\" [value]=\"level.Label\" (change)=\"Form.OnLabel(level, $event)\" />\n </label>\n <label>Description\n <input type=\"text\" [value]=\"level.Description\" (change)=\"Form.OnDescription(level, $event)\" />\n </label>\n } @else {\n <p><span>Value</span> {{ level.Value }}@if (Form.Frozen) { <span class=\"pill\">Locked</span> }</p>\n <p><span>Label</span> {{ level.Label }}</p>\n <p><span>Description</span> {{ level.Description }}</p>\n }\n </li>\n }\n </ul>\n </section>\n }\n</mj-collapsible-panel>\n"]}
@@ -3,7 +3,7 @@ import { MJTemplateEntity, MJTemplateContentEntity } from '@memberjunction/core-
3
3
  import { MJTemplateFormComponent } from '../../generated/Entities/MJTemplate/mjtemplate.form.component';
4
4
  import { LanguageDescription } from '@codemirror/language';
5
5
  import { CodeEditorComponent } from '@memberjunction/ng-code-editor';
6
- import { TemplateEditorConfig } from '../../shared/components/template-editor.component';
6
+ import { TemplateEditorComponent, TemplateEditorConfig } from '../../shared/components/template-editor.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class MJTemplateFormComponentExtended extends MJTemplateFormComponent implements OnInit, OnDestroy, AfterViewInit {
9
9
  record: MJTemplateEntity;
@@ -85,6 +85,8 @@ export declare class MJTemplateFormComponentExtended extends MJTemplateFormCompo
85
85
  get codeEditor(): CodeEditorComponent | null;
86
86
  /** @deprecated Use {@link CodeEditor}. */
87
87
  set codeEditor(value: CodeEditorComponent | null);
88
+ /** The embedded content editor; its dirty contents ride along in this form's save transaction. */
89
+ TemplateEditor: TemplateEditorComponent | undefined;
88
90
  private isUpdatingEditorValue;
89
91
  IsRunningTemplate: boolean;
90
92
  /** @deprecated Use {@link IsRunningTemplate}. */
@@ -171,9 +173,16 @@ export declare class MJTemplateFormComponentExtended extends MJTemplateFormCompo
171
173
  * Manually sync the editor value without triggering change events
172
174
  */
173
175
  private syncEditorValue;
174
- SaveTemplateContents(): Promise<boolean>;
175
- /** @deprecated Use {@link SaveTemplateContents}. */
176
- saveTemplateContents(): Promise<boolean>;
176
+ /**
177
+ * The embedded editor's new/dirty Template Contents join this form's pending records, so
178
+ * `InternalSaveRecord()` commits the template and its contents in ONE transaction group (the
179
+ * template first, so the content's TemplateID resolves) and `Validate()` covers the contents too.
180
+ *
181
+ * Before this, the form saved each content on its own AFTER the template save had already been
182
+ * reported as successful; a content whose `Save()` returned false only reached `console.error`,
183
+ * no mutation was issued, and the editor kept showing "Unsaved changes" forever.
184
+ */
185
+ protected PopulatePendingRecords(): void;
177
186
  SaveRecord(StopEditModeAfterSave?: boolean): Promise<boolean>;
178
187
  GetContentTypeDisplayText(typeId: string): string;
179
188
  /** @deprecated Use {@link GetContentTypeDisplayText}. */
@@ -1 +1 @@
1
- {"version":3,"file":"templates-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Templates/templates-form.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Templates/templates-form.component.ts"],"names":[],"mappings":"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"}