pict-section-form 1.0.128 → 1.0.129

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.
@@ -88,7 +88,7 @@ module.exports.default_configuration.pict_configuration = {
88
88
  {
89
89
  //onclick="{~D:Record.Macro.DataRequestFunction~}"
90
90
  "HashPostfix": "-Template-Wrap-Prefix",
91
- "Template": "<h1>Rectangular Area Solver Micro-app</h1><div><a href=\"#\" onclick=\"{~Pict~}.PictApplication.solve()\">[ solve ]</a></div><hr />"
91
+ "Template": "<h1>Rectangular Area Solver Micro-app</h1><div><a href=\"#\" onclick=\"{~Pict~}.PictApplication.solve()\">[ solve ]</a> <a href=\"#\" onclick=\"{~P~}.views.PictFormMetacontroller.showSupportViewInlineEditor()\">[ editor ]</a></div><hr />"
92
92
  }
93
93
  ],
94
94
 
@@ -30,7 +30,7 @@
30
30
  [
31
31
  {
32
32
  "HashPostfix": "-Template-Wrap-Prefix",
33
- "Template": "<h1>Rectangular Area Solver Micro-app</h1><div><a href=\"#\" onclick=\"{~P~}.PictApplication.solve()\">[ solve ]</a></div><hr />"
33
+ "Template": "<h1>Rectangular Area Solver Micro-app</h1><div><a href=\"#\" onclick=\"{~P~}.PictApplication.solve()\">[ solve ]</a> <a href=\"#\" onclick=\"{~P~}.views.PictFormMetacontroller.showSupportViewInlineEditor()\">[ editor ]</a></div><hr />"
34
34
  }
35
35
  ]
36
36
  }
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <title>Simple.</title>
5
5
  <style id="PICT-CSS"></style>
6
+ <style> #Pict-Form-Container { position: absolute; margin: 10px; padding: 10px; left: 0px; top: 0px; width: 65%; border: 2px solid lightsteelblue; }</style>
6
7
  <script src="./pict.min.js" type="text/javascript"></script>
7
8
  <script type="text/javascript">Pict.safeOnDocumentReady(() => { Pict.safeLoadPictApplication(SimpleApplication, 1)});</script>
8
9
  </head>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pict-section-form",
3
- "version": "1.0.128",
3
+ "version": "1.0.129",
4
4
  "description": "Pict dynamic form sections",
5
5
  "main": "source/Pict-Section-Form.js",
6
6
  "directories": {
@@ -31,7 +31,7 @@
31
31
  "browser-env": "^3.3.0",
32
32
  "eslint": "^9.36.0",
33
33
  "jquery": "^3.7.1",
34
- "pict": "^1.0.308",
34
+ "pict": "^1.0.310",
35
35
  "pict-application": "^1.0.29",
36
36
  "pict-service-commandlineutility": "^1.0.15",
37
37
  "quackage": "^1.0.42",
@@ -24,3 +24,11 @@ module.exports.PictDynamicLayoutProvider = require('./providers/Pict-Provider-Dy
24
24
 
25
25
  // The ManifestFactory, for when we want to convert tabular data to configuration
26
26
  module.exports.ManifestFactory = require('./services/ManifestFactory.js');
27
+
28
+
29
+ // The extension views
30
+ module.exports.ExtensionViews = (
31
+ {
32
+ LifecycleVisualization: require('./views/support/Pict-View-PSF-LifeCycle-Visualization.js'),
33
+ DebugViewer: require('./views/support/Pict-View-PSF-DebugViewer.js')
34
+ });
@@ -37,6 +37,12 @@ class PictFormMetacontroller extends libPictViewClass
37
37
  this.formTemplatePrefix = this.pict.providers.MetatemplateGenerator.baseTemplatePrefix;
38
38
 
39
39
  this.manifest = this.pict.manifest;
40
+
41
+ this.SupportViewPrototypes = (
42
+ {
43
+ LifecycleVisualization: require('./support/Pict-View-PSF-LifeCycle-Visualization.js'),
44
+ DebugViewer: require('./support/Pict-View-PSF-DebugViewer.js')
45
+ });
40
46
  }
41
47
 
42
48
  get viewMarshalDestination()
@@ -1084,6 +1090,23 @@ class PictFormMetacontroller extends libPictViewClass
1084
1090
  }
1085
1091
  }
1086
1092
 
1093
+ showSupportViewInlineEditor()
1094
+ {
1095
+ // 1. See if the Inline Editor support view is loaded
1096
+ if (!("Pict-Form-DebugViewer" in this.pict.views))
1097
+ {
1098
+ // 2. Load the support view if it isn't
1099
+ this.pict.addView("Pict-Form-DebugViewer", {}, this.SupportViewPrototypes.DebugViewer);
1100
+ }
1101
+
1102
+ // 3. See if the container for the support view is loaded
1103
+ // 4. Render the container for the support view if it isn't loaded
1104
+ this.pict.views["Pict-Form-DebugViewer"].bootstrapContainer();
1105
+
1106
+ // 5. Render the support view into the container
1107
+ this.pict.views["Pict-Form-DebugViewer"].render();
1108
+ }
1109
+
1087
1110
  /**
1088
1111
  * Returns whether the object is a Pict Metacontroller.
1089
1112
  *
@@ -0,0 +1,151 @@
1
+ const libPictViewFormSupportBase = require(`./Pict-View-PSF-SupportBase.js`);
2
+
3
+ const defaultViewConfiguration = (
4
+ {
5
+ ViewIdentifier: "Pict-Form-DebugViewer",
6
+
7
+ DefaultRenderable: 'Pict-Form-DebugViewer-Renderable',
8
+ DefaultDestinationAddress: "#Pict-Form-Extensions-Container",
9
+
10
+ RenderOnLoad: false,
11
+
12
+ CSS: /*css*/`
13
+ #Pict-Form-Extensions-Container { position: absolute; left: 75%; top: 0px; width: 25%; background-color: blanchedalmond; margin: 2px; }
14
+ #PSFDV-SectionList .PSFDV-Section { margin: 2px; padding: 2px; background-color: aliceblue; }
15
+ #PSFDV-DynamicInputSection .PSFDV-Section { margin: 2px; padding: 2px; background-color: #c8fe44; }
16
+ .PSFDV-Section-Group, .PSFDV-Section-Descriptors { margin-left: 5px; }
17
+ .PSFDV-Section-Buttons { font-face: orange; }
18
+ .PSFDV-Solver-Entry { margin-left: 10px; margin-left: 5px; font-family: "Courier New", "Lucida Console", monospace; white-space: nowrap; overflow: scroll; }
19
+ .PSFDV-Solver-Result { font-family: "Courier New", "Lucida Console", monospace; background-color: #eefaee; white-space: nowrap; overflow: scroll; }
20
+ .PSFDV-DataHeader { font-weight: bold; }
21
+ .PSFDV-DeEmphasize { font-weight: light; font-size: smaller; }
22
+ .PSFDV-Data { margin-left: 10px; line-height: 0.5; font-size: smaller; }
23
+ .PSFDV-Label { font-weight: light; min-width: 15%; color: #334481; }
24
+ .PSFDV-Hidden { display: none; }
25
+ `,
26
+
27
+ Templates: [
28
+ {
29
+ Hash: "Pict-Form-DebugViewer-Content",
30
+ Template: /*html*/`
31
+ <div>
32
+ <h2>Pict Inline Form Editor</h2>
33
+ {~T:Pict-Form-DebugViewer-MetacontrollerContainer~}
34
+ </div>`
35
+ },
36
+ {
37
+ Hash: "Pict-Form-DebugViewer-MetacontrollerContainer",
38
+ Template: /*html*/`
39
+ <p class="PSFDV-Data"><span class="PSFDV-Label">Scope:</span> {~D:Context[0].getDynamicState().Scope~}</p>
40
+ <div id="PSFDV-SectionList">
41
+ {~TS:Pict-Form-DebugViewer-SectionContainer:Context[0].getDynamicState().SectionViews~}
42
+ </div>
43
+ <hr>
44
+ <div id="PSFDV-DynamicInputSection">
45
+ {~T:Pict-Form-DebugViewer-SectionContainer:Context[0].getDynamicState().DynamicInputView~}
46
+ </div>
47
+ `
48
+ },
49
+ {
50
+ Hash: "Pict-Form-DebugViewer-SectionContainer",
51
+ Template: /*html*/`
52
+ <div id="PSFDV-Section-{~D:Record.Hash~}" class="PSFDV-Section">
53
+ <h3><span class="PSFDV-DeEmphasize">Section:</span> {~D:Record.sectionDefinition.Name~}</h3>
54
+ <div class="PSDV-Section-Buttons"><a href="#" onclick="{~P~}.views['{~D:Record.View.Hash~}'].render()">[ render ]</a> <a href="#" onclick="{~P~}.ContentAssignment.assignContent('{~D:Record.View.options.DefaultDestinationAddress~}','')">[ clear ]</a> <a href="#" onclick="{~P~}.ContentAssignment.removeClass('#PSFDV-{~D:Record.View.Hash~}-Extra', 'PSFDV-Hidden')">[ Extra Data ]</a></div>
55
+ <div id="PSFDV-{~D:Record.View.Hash~}-Extra" class="PSFDV-Hidden">
56
+ <p class="PSFDV-Data"><span class="PSFDV-Label">Description:</span> {~D:Record.sectionDefinition.Description~}</p>
57
+ <p class="PSFDV-Data"><span class="PSFDV-Label">Hash:</span> {~D:Record.View.Hash~}</p>
58
+ <p class="PSFDV-Data"><span class="PSFDV-Label">HTML ID:</span> {~D:Record.View.sectionDefinition.Macro.HTMLID~}</p>
59
+ <h4>Section Solvers:</h4>
60
+ <div class="PSFDV-Section-Solvers">
61
+ {~TS:Pict-Form-DebugViewer-SolverEntry:Record.Solvers[]<<~?ExpressionScope,==,Section?~>>~}
62
+ </div>
63
+ <h4>Tabular/RecordSet Solvers:</h4>
64
+ <div class="PSFDV-Group-Solvers">
65
+ {~TS:Pict-Form-DebugViewer-SolverEntry:Record.Solvers[]<<~?ExpressionScope,==,Group?~>>~}
66
+ </div>
67
+ <h4>Inputs:</h4>
68
+ <div class="PSFDV-Section-Solver-DynamicInput">
69
+ {~TS:Pict-Form-DebugViewer-GroupContainer:Record.View.sectionDefinition.Groups~}
70
+ </div>
71
+ <a href="#" onclick="{~P~}.ContentAssignment.addClass('#PSFDV-{~D:Record.View.Hash~}-Extra', 'PSFDV-Hidden')">[ Hide Extra Data for {~D:Record.View.Hash~} ]</a>
72
+ </div>
73
+ </div>
74
+ `
75
+ },
76
+ {
77
+ Hash: "Pict-Form-DebugViewer-SolverEntry",
78
+ Template: /*html*/`
79
+ <div class="PSFDV-Section-Solver-Entry">
80
+ <p class="PSFDV-Solver-Entry">{~D:Record.Expression~}</p>
81
+ <p class="PSFDV-Data"><span class="PSFDV-Label">Last Result</span> <span class="PSFDV-Solver-Result">{~D:Record.LastResult~}</span></p>
82
+ <p class="PSFDV-Data"><span class="PSFDV-Label">Sequence</span> Ordinal [{~D:Record.Ordinal~}] Index [{~D:Record.Index~}]</p>
83
+ </div>
84
+ `
85
+ },
86
+ {
87
+ Hash: "Pict-Form-DebugViewer-GroupContainer",
88
+ Template: /*html*/`
89
+ <div class="PSFDV-Section-Group">
90
+ <h8><span class="PSFDV-DeEmphasize">Group:</span> {~D:Record.Name~} [idx <em>{~D:Record.GroupIndex~}</em>]</h8>
91
+ <p class="PSFDV-Data"><span class="PSFDV-Label">Layout:</span> {~D:Record.Layout~}</p>
92
+ <div class="PSFDV-Section-Rows">
93
+ {~TS:Pict-Form-DebugViewer-RowContainer:Record.Rows~}
94
+ </div>
95
+ </div>
96
+ `
97
+ },
98
+ {
99
+ Hash: "Pict-Form-DebugViewer-RowContainer",
100
+ Template: /*html*/`
101
+ <div class="PSFDV-Section-Descriptors">
102
+ <h9>Row {~D:Record.Hash~}</h9>
103
+ {~TS:Pict-Form-DebugViewer-DescriptorContainer:Record.Inputs~}
104
+ </div>
105
+ `
106
+ },
107
+ {
108
+ Hash: "Pict-Form-DebugViewer-DescriptorContainer",
109
+ Template: /*html*/`
110
+ <div class="PSFDV-Section-Descriptor">
111
+ <p class="PSFDV-DataHeader"><span class="PSFDV-DeEmphasize">Input:</span> {~D:Record.Name~}</p>
112
+ <p class="PSFDV-Data"><span class="PSFDV-Label">Hash</span> {~D:Record.Hash~}</p>
113
+ <p class="PSFDV-Data"><span class="PSFDV-Label">DataType</span> {~D:Record.DataType~}</p>
114
+ <p class="PSFDV-Data"><span class="PSFDV-Label">InputType</span> {~D:Record.PictForm.InputType~}</p>
115
+ <p class="PSFDV-Data"><span class="PSFDV-Label">Informary Data Address</span> {~D:Record.PictForm.InformaryDataAddress~}</p>
116
+ <p class="PSFDV-Data"><span class="PSFDV-Label">Input Index</span> {~D:Record.PictForm.InputIndex~}</p>
117
+ <p class="PSFDV-Data"><span class="PSFDV-Label">HTML ID</span> {~D:Record.PictForm.Macro.HTMLID~}</p>
118
+ </div>
119
+ `
120
+ },
121
+ {
122
+ Hash: "Pict-Form-DebugViewer-Container",
123
+ Template: /*html*/`<div id="Pict-Form-Extensions-Container"></div>`
124
+ }
125
+ ],
126
+ Renderables: [
127
+ {
128
+ RenderableHash: "Pict-Form-DebugViewer-Renderable",
129
+ TemplateHash: "Pict-Form-DebugViewer-Content"
130
+ },
131
+ {
132
+ RenderableHash: "Pict-Form-DebugViewer-Container",
133
+ TemplateHash: "Pict-Form-DebugViewer-Container",
134
+ ContentDestinationAddress: 'body',
135
+ RenderMethod: 'append_once',
136
+ TestAddress: "#Pict-Form-Extensions-Container",
137
+ }
138
+ ]
139
+ });
140
+
141
+ class PictFormsInlineEditor extends libPictViewFormSupportBase
142
+ {
143
+ constructor(pFable, pOptions, pServiceHash)
144
+ {
145
+ super(pFable, pOptions, pServiceHash);
146
+ }
147
+ }
148
+
149
+ module.exports = PictFormsInlineEditor;
150
+
151
+ module.exports.default_configuration = defaultViewConfiguration;
@@ -0,0 +1,36 @@
1
+ const libPictView = require(`pict-view`);
2
+
3
+ const defaultViewConfiguration = (
4
+ {
5
+ ViewIdentifier: "PictSectionForm-Visualization-Lifecycle",
6
+
7
+ DefaultRenderable: 'PSF-Visualization-Lifecycle-Renderable',
8
+ DefaultDestinationAddress: "#PictSectionForm-Extensions-Container",
9
+
10
+ RenderOnLoad: false,
11
+
12
+ Templates: [
13
+ {
14
+ Hash: "PictSectionForm-Visualization-Lifecycle-Content",
15
+ Template: /*html*/``
16
+ }
17
+ ],
18
+ Renderables: [
19
+ {
20
+ RenderableHash: "PictSectionForm-Visualization-Lifecycle-Renderable",
21
+ TemplateHash: "PictSectionForm-Visualization-Lifecycle-Content"
22
+ }
23
+ ]
24
+ });
25
+
26
+ class PictSectionFormsLifecycleVisualization extends libPictView
27
+ {
28
+ constructor(pFable, pOptions, pServiceHash)
29
+ {
30
+ super(pFable, pOptions, pServiceHash);
31
+ }
32
+ }
33
+
34
+ module.exports = PictSectionFormsLifecycleVisualization;
35
+
36
+ module.exports.default_configuration = defaultViewConfiguration;
@@ -0,0 +1,241 @@
1
+ const libPictView = require(`pict-view`);
2
+
3
+ const defaultViewConfiguration = (
4
+ {
5
+ ViewIdentifier: "Pict-Form-SupportBase",
6
+
7
+ DefaultRenderable: 'Pict-Form-SUPPORT-BASE',
8
+
9
+ RenderOnLoad: false,
10
+
11
+ Templates: [],
12
+ Renderables: [
13
+ {
14
+ RenderableHash: "Pict-Form-SUPPORT-BASE",
15
+ TemplateHash: "Pict-Form-SUPPORT-BASE-NOTEMPLATE"
16
+ }
17
+ ]
18
+ });
19
+
20
+ class PictFormsSupportBase extends libPictView
21
+ {
22
+ constructor(pFable, pOptions, pServiceHash)
23
+ {
24
+ super(pFable, pOptions, pServiceHash);
25
+ }
26
+
27
+ getDynamicState()
28
+ {
29
+ if (!('PictFormMetacontroller' in this.pict.views))
30
+ {
31
+ this.pict.log.warn(`Pict Forms Inline Editor tried to initialize but no metacontroller was found.`);
32
+ return (
33
+ {
34
+ "Scope": `ERR_NO_METACONTROLLER`,
35
+ "Description": `Error initializing inline editor -- no metacontroller found.`,
36
+ "Manifest": this.fable.newManyfest(),
37
+ "Sections": []
38
+ });
39
+ }
40
+ let tmpMetacontroller = this.pict.views.PictFormMetacontroller;
41
+ let tmpDynamicState = (
42
+ {
43
+ // TODO: The way the metacontroller pulls in the manifest and bootstraps the description is putting "DEFAULT" into the actual manifest; fix this.
44
+ "Scope": tmpMetacontroller.manifestDescription.Scope,
45
+ "Description": ``,
46
+ "Manifest": tmpMetacontroller.manifest,
47
+ "ManifestDescription": tmpMetacontroller.manifestDescription,
48
+ "AllViews": tmpMetacontroller.filterViews(),
49
+ "SectionViews": [],
50
+ "DynamicInputView": false,
51
+ "Solvers": []
52
+ });
53
+
54
+ for (let i = 0; i < tmpDynamicState.AllViews.length; i++)
55
+ {
56
+ let tmpSectionView = tmpDynamicState.AllViews[i];
57
+ if (tmpSectionView.isPictSectionForm && (tmpSectionView.Hash == 'PictFormMetacontroller-DynamicInputs'))
58
+ {
59
+ // This is the special Dynamic Input section -- it goes in its own place.
60
+ tmpDynamicState.DynamicInputView = tmpSectionView;
61
+ }
62
+ else if (tmpSectionView.isPictSectionForm)
63
+ {
64
+ tmpDynamicState.SectionViews.push(
65
+ {
66
+ View: tmpSectionView,
67
+ sectionDefinition: tmpSectionView.sectionDefinition,
68
+ Solvers: []
69
+ });
70
+ }
71
+ }
72
+
73
+ // Now get the solvers for each section view
74
+ for (let i = 0; i < tmpDynamicState.SectionViews.length; i++)
75
+ {
76
+ let tmpSectionView = tmpDynamicState.SectionViews[i].View;
77
+ let tmpSectionViewSolvers = tmpDynamicState.SectionViews[i].Solvers;
78
+ // Find the view representation in the
79
+ if (tmpSectionView.isPictSectionForm && Array.isArray(tmpSectionView.sectionDefinition.Solvers))
80
+ {
81
+ for (let j = 0; j < tmpSectionView.sectionDefinition.Solvers.length; j++)
82
+ {
83
+ let tmpSolver = tmpSectionView.sectionDefinition.Solvers[j];
84
+
85
+ let tmpSolverEntry = { ViewHash: tmpSectionView.Hash, SectionOrdinal: i, Ordinal: 1, Index: j, Expression: '', ExpressionType: 'Unknown', ExpressionScope: 'Section'}
86
+ if (typeof(tmpSolver) === 'string')
87
+ {
88
+ tmpSolverEntry.Expression = tmpSolver;
89
+ tmpSolverEntry.ExpressionType = 'Simple';
90
+ }
91
+ else if (typeof(tmpSolver) === 'object')
92
+ {
93
+ // When the solvers are in this format:
94
+ // {
95
+ // Ordinal: 0,
96
+ // Expression: "PercentTotalFat = (Fat * 9) / Calories",
97
+ // }
98
+ tmpSolverEntry.Expression = tmpSolver.Expression;
99
+ tmpSolverEntry.Ordinal = tmpSolver.Ordinal;
100
+ tmpSolverEntry.ExpressionType = 'Complex';
101
+ }
102
+ tmpDynamicState.Solvers.push(tmpSolverEntry);
103
+ tmpSectionViewSolvers.push(tmpSolverEntry);
104
+ }
105
+ }
106
+
107
+ // Now get all the Group solvers
108
+ // These guards are here because the metacontroller view masquerades as a section form view but isn't one.
109
+ for (let j = 0; j < tmpSectionView.sectionDefinition.Groups.length; j++)
110
+ {
111
+ let tmpGroup = tmpSectionView.getGroup(j);
112
+ if (`RecordSetSolvers` in tmpGroup)
113
+ {
114
+ for (let k = 0; k < tmpGroup.RecordSetSolvers.length; k++)
115
+ {
116
+ let tmpSolver = tmpGroup.RecordSetSolvers[k];
117
+
118
+ let tmpSolverEntry = { ViewHash: tmpSectionView.Hash, SectionOrdinal: i, Ordinal: 1, Index: j, Expression: '', ExpressionType: 'Unknown', ExpressionScope: 'Group'}
119
+ if (tmpSolver)
120
+ {
121
+ if (typeof(tmpSolver) === 'string')
122
+ {
123
+ tmpSolverEntry.Expression = tmpSolver;
124
+ tmpSolverEntry.ExpressionType = 'Simple';
125
+ }
126
+ else if (typeof(tmpSolver) === 'object')
127
+ {
128
+ // When the solvers are in this format:
129
+ // {
130
+ // Ordinal: 0,
131
+ // Expression: "PercentTotalFat = (Fat * 9) / Calories",
132
+ // }
133
+ tmpSolverEntry.Expression = tmpSolver.Expression;
134
+ tmpSolverEntry.Ordinal = tmpSolver.Ordinal;
135
+ tmpSolverEntry.ExpressionType = 'Complex';
136
+ }
137
+ }
138
+ tmpDynamicState.Solvers.push(tmpSolverEntry);
139
+ tmpSectionViewSolvers.push(tmpSolverEntry);
140
+ }
141
+ }
142
+ }
143
+
144
+ // Now sort the solvers by Ordinal and then Index
145
+ tmpSectionViewSolvers.sort((pLeftValue, pRightValue) =>
146
+ {
147
+ if (pLeftValue.Ordinal < pRightValue.Ordinal) return -1;
148
+ if (pLeftValue.Ordinal > pRightValue.Ordinal) return 1;
149
+ if (pLeftValue.Index < pRightValue.Index) return -1;
150
+ if (pLeftValue.Index > pRightValue.Index) return 1;
151
+ return 0;
152
+ });
153
+ }
154
+
155
+ // Get the *full* last solve outcome object
156
+ tmpDynamicState.LastSolveOutcome = this.pict.providers.DynamicSolver.lastSolveOutcome;
157
+
158
+ // Now walk through the solvers and see if the outcome has a result for it.
159
+ if (typeof(tmpDynamicState.LastSolveOutcome) == 'object')
160
+ {
161
+ for (let i = 0; i < tmpDynamicState.Solvers.length; i++)
162
+ {
163
+ let tmpSolverEntry = tmpDynamicState.Solvers[i];
164
+
165
+ if (tmpSolverEntry.Ordinal in tmpDynamicState.LastSolveOutcome.SolveOrdinals)
166
+ {
167
+ if (tmpSolverEntry.ExpressionScope == 'Section')
168
+ {
169
+ let tmpSolveResultSet = tmpDynamicState.LastSolveOutcome.SolveOrdinals[tmpSolverEntry.Ordinal].SectionSolvers;
170
+ if (Array.isArray(tmpSolveResultSet))
171
+ {
172
+ for (let j = 0; j < tmpSolveResultSet.length; j++)
173
+ {
174
+ let tmpPotentialResultEntry = tmpSolveResultSet[j];
175
+ if ((tmpPotentialResultEntry.ViewHash == tmpSolverEntry.ViewHash) && (tmpPotentialResultEntry.Solver.Expression == tmpSolverEntry.Expression))
176
+ {
177
+ // We have a match -- assign the result to the solver entry
178
+ tmpSolverEntry.LastResult = tmpPotentialResultEntry.Solver.ResultsObject.RawResult;
179
+ tmpSolverEntry.LastResultsObject = tmpPotentialResultEntry.ResultsObject;
180
+ }
181
+ }
182
+ }
183
+ }
184
+ else if ((tmpSolverEntry.ExpressionScope == 'Group'))
185
+ {
186
+ let tmpSolveResultSet = tmpDynamicState.LastSolveOutcome.SolveOrdinals[tmpSolverEntry.Ordinal].GroupSolvers;
187
+ if (Array.isArray(tmpSolveResultSet))
188
+ {
189
+ for (let j = 0; j < tmpSolveResultSet.length; j++)
190
+ {
191
+ let tmpPotentialResultEntry = tmpSolveResultSet[j];
192
+ if ((tmpPotentialResultEntry.ViewHash == tmpSolverEntry.ViewHash) && (tmpPotentialResultEntry.Solver.Expression == tmpSolverEntry.Expression))
193
+ {
194
+ // We have a match -- assign the result to the solver entry
195
+ tmpSolverEntry.LastResult = tmpPotentialResultEntry.Solver.ResultsObject.RawResult;
196
+ tmpSolverEntry.LastResultsObject = tmpPotentialResultEntry.Solver.ResultsObject;
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+ }
204
+
205
+ return tmpDynamicState;
206
+ }
207
+
208
+ getSectionSolvers(pSectionViewHash)
209
+ {
210
+ let tmpDynamicState = this.getDynamicState();
211
+ let tmpSectionSolvers = tmpDynamicState.Solvers.map((pSolverEntry) => { if (pSolverEntry.ViewHash === pSectionViewHash) return pSolverEntry; });
212
+ return tmpSectionSolvers;
213
+ }
214
+
215
+ writeSolver(pIdentifierHash, pSolver)
216
+ {
217
+
218
+ }
219
+
220
+ bootstrapContainer()
221
+ {
222
+ // 3. See if the container for the support view is loaded
223
+ let tmpContainerTest = this.options.DefaultDestinationAddress;
224
+
225
+ let tmpContainerElement = this.pict.ContentAssignment.getElement(this.options.DefaultDestinationAddress);
226
+ if (tmpContainerElement.length > 0)
227
+ {
228
+ return true;
229
+ }
230
+
231
+ // 4. Render the container for the support view if it isn't loaded
232
+ let tmpContainerRenderableHash = 'Pict-Form-DebugViewer-Container';
233
+ this.renderables[tmpContainerRenderableHash].TestAddress = tmpContainerTest;
234
+ this.pict.CSSMap.injectCSS();
235
+ this.render(tmpContainerRenderableHash);
236
+ }
237
+ }
238
+
239
+ module.exports = PictFormsSupportBase;
240
+
241
+ module.exports.default_configuration = defaultViewConfiguration;
@@ -8,6 +8,10 @@ declare const _exports: {
8
8
  PictFormApplication: typeof import("./application/Pict-Application-Form.js");
9
9
  PictDynamicLayoutProvider: typeof import("./providers/Pict-Provider-DynamicLayout.js");
10
10
  ManifestFactory: typeof import("./services/ManifestFactory.js");
11
+ ExtensionViews: {
12
+ LifecycleVisualization: typeof import("./views/support/Pict-View-PSF-LifeCycle-Visualization.js");
13
+ DebugViewer: typeof import("./views/support/Pict-View-PSF-DebugViewer.js");
14
+ };
11
15
  };
12
16
  export = _exports;
13
17
  //# sourceMappingURL=Pict-Section-Form.d.ts.map
@@ -14,6 +14,10 @@ declare class PictFormMetacontroller extends libPictViewClass {
14
14
  lastRenderedViews: any[];
15
15
  formTemplatePrefix: any;
16
16
  manifest: any;
17
+ SupportViewPrototypes: {
18
+ LifecycleVisualization: typeof import("./support/Pict-View-PSF-LifeCycle-Visualization.js");
19
+ DebugViewer: typeof import("./support/Pict-View-PSF-DebugViewer.js");
20
+ };
17
21
  set viewMarshalDestination(pValue: any);
18
22
  get viewMarshalDestination(): any;
19
23
  /**
@@ -183,6 +187,7 @@ declare class PictFormMetacontroller extends libPictViewClass {
183
187
  * @param {Function} fCallback - The callback to call when the transaction is complete.
184
188
  */
185
189
  registerOnTransactionCompleteCallback(pTransactionGUID: string, fCallback: Function): void;
190
+ showSupportViewInlineEditor(): void;
186
191
  /**
187
192
  * Returns whether the object is a Pict Metacontroller.
188
193
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Pict-View-Form-Metacontroller.d.ts","sourceRoot":"","sources":["../../../source/views/Pict-View-Form-Metacontroller.js"],"names":[],"mappings":";AAaA;;GAEG;AAEH;;;;;;GAMG;AACH;IAEC,2DAaC;IALA,yBAA2B;IAE3B,wBAAsF;IAEtF,cAAkC;IAQnC,wCAGC;IARD,kCAGC;IAOD;;;;OAIG;IACH,qBAFa,GAAG,CAaf;IAED;;;;OAIG;IACH,mBAFa,GAAG,CAaf;IAED,yCAYC;IAED;;;;;OAKG;IACH,kCAHW,aAAa,GACX,IAAI,CAsBhB;IAwBD;;;;OAIG;IACH,WAFa,GAAG,CAMf;IAED,gDAGC;IAED,+CAGC;IAED;;;;OAIG;IACH,2DAJW,MAAM,GAEL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAW9B;IAED;;;OAGG;IACH,0BAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,sBACnB,MAAM,QAiChB;IAED;;;;;;;;;OASG;IACH,kCALW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,UACnB,MAAM,GAEL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsC9B;IAED;;;;OAIG;IACH,uCAJW,KAAK,CAAC,MAAM,CAAC,sBACb,MAAM,UACN,MAAM,QAahB;IAED;;;OAGG;IACH,6CAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,sBACnB,MAAM,SAehB;IAED;;;;;;;;OAQG;IACH,wDAHW,YAAY,SAoHtB;IAED;;;;;;;OAOG;IACH,4CAHW,MAAM,GACJ,IAAI,CAShB;IAED;;;;OAIG;IACH,6BAFa,IAAI,CAQhB;IAED;;;;;;;OAOG;IACH,+DAFW,YAAY,QAatB;IAED;;;;;OAKG;IACH,8EAFW,YAAY,QAmBtB;IAED;;;;;;OAMG;IACH,oEAHW,YAAY,GACV,IAAI,CAkDhB;IAED;;;;;;;OAOG;IACH,uEAJW,YAAY,GAEX,IAAI,CAsFf;IAED;;;;;OAKG;IACH,qCAHW,MAAM,GACJ,MAAM,GAAC,OAAO,CA2C1B;IAED,+CAeC;IAED;;;;;;;OAOG;IACH,kFAJW,MAAM,GAEJ,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAoLtC;IA5JC,gCAA0D;IAC1D,yBAAiD;IA6JnD;;;;OAIG;IACH,gCAHW,MAAM,qBACN,MAAM,QA0BhB;IAED;;;OAGG;IACH,yDAHW,MAAM,uBACN,MAAM,QAKhB;IAED;;;;;OAKG;IACH,yDALW,MAAM,uBACN,MAAM,GAEL,OAAO,CAoDlB;IAED;;;;OAIG;IACH,sCAJW,MAAM,GAEL,OAAO,CA0ClB;IAED;;;OAGG;IACH,wDAHW,MAAM,6BAuBhB;IAED;;;;OAIG;IACH,4BAFa,OAAO,CAKnB;CACD;;;;;qCAGU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;oBA5jCjB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM"}
1
+ {"version":3,"file":"Pict-View-Form-Metacontroller.d.ts","sourceRoot":"","sources":["../../../source/views/Pict-View-Form-Metacontroller.js"],"names":[],"mappings":";AAaA;;GAEG;AAEH;;;;;;GAMG;AACH;IAEC,2DAmBC;IAXA,yBAA2B;IAE3B,wBAAsF;IAEtF,cAAkC;IAElC;;;MAIE;IAQH,wCAGC;IARD,kCAGC;IAOD;;;;OAIG;IACH,qBAFa,GAAG,CAaf;IAED;;;;OAIG;IACH,mBAFa,GAAG,CAaf;IAED,yCAYC;IAED;;;;;OAKG;IACH,kCAHW,aAAa,GACX,IAAI,CAsBhB;IAwBD;;;;OAIG;IACH,WAFa,GAAG,CAMf;IAED,gDAGC;IAED,+CAGC;IAED;;;;OAIG;IACH,2DAJW,MAAM,GAEL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAW9B;IAED;;;OAGG;IACH,0BAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,sBACnB,MAAM,QAiChB;IAED;;;;;;;;;OASG;IACH,kCALW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,UACnB,MAAM,GAEL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsC9B;IAED;;;;OAIG;IACH,uCAJW,KAAK,CAAC,MAAM,CAAC,sBACb,MAAM,UACN,MAAM,QAahB;IAED;;;OAGG;IACH,6CAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,sBACnB,MAAM,SAehB;IAED;;;;;;;;OAQG;IACH,wDAHW,YAAY,SAoHtB;IAED;;;;;;;OAOG;IACH,4CAHW,MAAM,GACJ,IAAI,CAShB;IAED;;;;OAIG;IACH,6BAFa,IAAI,CAQhB;IAED;;;;;;;OAOG;IACH,+DAFW,YAAY,QAatB;IAED;;;;;OAKG;IACH,8EAFW,YAAY,QAmBtB;IAED;;;;;;OAMG;IACH,oEAHW,YAAY,GACV,IAAI,CAkDhB;IAED;;;;;;;OAOG;IACH,uEAJW,YAAY,GAEX,IAAI,CAsFf;IAED;;;;;OAKG;IACH,qCAHW,MAAM,GACJ,MAAM,GAAC,OAAO,CA2C1B;IAED,+CAeC;IAED;;;;;;;OAOG;IACH,kFAJW,MAAM,GAEJ,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAoLtC;IA5JC,gCAA0D;IAC1D,yBAAiD;IA6JnD;;;;OAIG;IACH,gCAHW,MAAM,qBACN,MAAM,QA0BhB;IAED;;;OAGG;IACH,yDAHW,MAAM,uBACN,MAAM,QAKhB;IAED;;;;;OAKG;IACH,yDALW,MAAM,uBACN,MAAM,GAEL,OAAO,CAoDlB;IAED;;;;OAIG;IACH,sCAJW,MAAM,GAEL,OAAO,CA0ClB;IAED;;;OAGG;IACH,wDAHW,MAAM,6BAuBhB;IAED,oCAeC;IAED;;;;OAIG;IACH,4BAFa,OAAO,CAKnB;CACD;;;;;qCAGU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;oBAnlCjB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM"}
@@ -0,0 +1,32 @@
1
+ export = PictFormsInlineEditor;
2
+ declare class PictFormsInlineEditor extends libPictViewFormSupportBase {
3
+ }
4
+ declare namespace PictFormsInlineEditor {
5
+ export { defaultViewConfiguration as default_configuration };
6
+ }
7
+ import libPictViewFormSupportBase = require("./Pict-View-PSF-SupportBase.js");
8
+ declare namespace defaultViewConfiguration {
9
+ let ViewIdentifier: string;
10
+ let DefaultRenderable: string;
11
+ let DefaultDestinationAddress: string;
12
+ let RenderOnLoad: boolean;
13
+ let CSS: string;
14
+ let Templates: {
15
+ Hash: string;
16
+ Template: string;
17
+ }[];
18
+ let Renderables: ({
19
+ RenderableHash: string;
20
+ TemplateHash: string;
21
+ ContentDestinationAddress?: undefined;
22
+ RenderMethod?: undefined;
23
+ TestAddress?: undefined;
24
+ } | {
25
+ RenderableHash: string;
26
+ TemplateHash: string;
27
+ ContentDestinationAddress: string;
28
+ RenderMethod: string;
29
+ TestAddress: string;
30
+ })[];
31
+ }
32
+ //# sourceMappingURL=Pict-View-PSF-DebugViewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pict-View-PSF-DebugViewer.d.ts","sourceRoot":"","sources":["../../../../source/views/support/Pict-View-PSF-DebugViewer.js"],"names":[],"mappings":";AA4IA;CAMC"}
@@ -0,0 +1,23 @@
1
+ export = PictSectionFormsLifecycleVisualization;
2
+ declare class PictSectionFormsLifecycleVisualization extends libPictView {
3
+ constructor(pFable: any, pOptions: any, pServiceHash: any);
4
+ }
5
+ declare namespace PictSectionFormsLifecycleVisualization {
6
+ export { defaultViewConfiguration as default_configuration };
7
+ }
8
+ import libPictView = require("pict-view");
9
+ declare namespace defaultViewConfiguration {
10
+ let ViewIdentifier: string;
11
+ let DefaultRenderable: string;
12
+ let DefaultDestinationAddress: string;
13
+ let RenderOnLoad: boolean;
14
+ let Templates: {
15
+ Hash: string;
16
+ Template: string;
17
+ }[];
18
+ let Renderables: {
19
+ RenderableHash: string;
20
+ TemplateHash: string;
21
+ }[];
22
+ }
23
+ //# sourceMappingURL=Pict-View-PSF-LifeCycle-Visualization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pict-View-PSF-LifeCycle-Visualization.d.ts","sourceRoot":"","sources":["../../../../source/views/support/Pict-View-PSF-LifeCycle-Visualization.js"],"names":[],"mappings":";AAyBA;IAEC,2DAGC;CACD"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=Pict-View-PSF-Solver-Visualization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pict-View-PSF-Solver-Visualization.d.ts","sourceRoot":"","sources":["../../../../source/views/support/Pict-View-PSF-Solver-Visualization.js"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ export = PictFormsSupportBase;
2
+ declare class PictFormsSupportBase extends libPictView {
3
+ constructor(pFable: any, pOptions: any, pServiceHash: any);
4
+ getDynamicState(): {
5
+ Scope: any;
6
+ Description: string;
7
+ Manifest: any;
8
+ ManifestDescription: any;
9
+ AllViews: any;
10
+ SectionViews: any[];
11
+ DynamicInputView: boolean;
12
+ Solvers: any[];
13
+ } | {
14
+ Scope: string;
15
+ Description: string;
16
+ Manifest: any;
17
+ Sections: any[];
18
+ };
19
+ getSectionSolvers(pSectionViewHash: any): any;
20
+ writeSolver(pIdentifierHash: any, pSolver: any): void;
21
+ bootstrapContainer(): boolean;
22
+ }
23
+ declare namespace PictFormsSupportBase {
24
+ export { defaultViewConfiguration as default_configuration };
25
+ }
26
+ import libPictView = require("pict-view");
27
+ declare namespace defaultViewConfiguration {
28
+ let ViewIdentifier: string;
29
+ let DefaultRenderable: string;
30
+ let RenderOnLoad: boolean;
31
+ let Templates: any[];
32
+ let Renderables: {
33
+ RenderableHash: string;
34
+ TemplateHash: string;
35
+ }[];
36
+ }
37
+ //# sourceMappingURL=Pict-View-PSF-SupportBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pict-View-PSF-SupportBase.d.ts","sourceRoot":"","sources":["../../../../source/views/support/Pict-View-PSF-SupportBase.js"],"names":[],"mappings":";AAmBA;IAEC,2DAGC;IAED;;;;;;;;;;;;;;MAmLC;IAED,8CAKC;IAED,sDAGC;IAED,8BAgBC;CACD"}