pict-section-form 1.1.8 → 1.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -4
- package/source/global.d.ts +1 -0
- package/source/providers/inputs/Pict-Provider-Input-AutofillTriggerGroup.js +30 -0
- package/source/providers/inputs/Pict-Provider-Input-Diagram.js +87 -0
- package/source/providers/inputs/Pict-Provider-Input-EntityBundleRequest.js +11 -1
- package/source/views/Pict-View-Form-Metacontroller.js +59 -0
- package/test/Pict-View-Form-Metacontroller-Marshal_tests.js +100 -0
- package/types/source/Pict-Section-Form.d.ts +3 -0
- package/types/source/providers/Pict-Provider-DynamicFormSolverBehaviors.d.ts +115 -0
- package/types/source/providers/Pict-Provider-DynamicFormSolverBehaviors.d.ts.map +1 -1
- package/types/source/providers/Pict-Provider-DynamicTabularData.d.ts +24 -0
- package/types/source/providers/Pict-Provider-DynamicTabularData.d.ts.map +1 -1
- package/types/source/providers/Pict-Provider-DynamicTemplates.d.ts.map +1 -1
- package/types/source/providers/inputs/Pict-Provider-Input-AutofillTriggerGroup.d.ts.map +1 -1
- package/types/source/providers/inputs/Pict-Provider-Input-Diagram-CSS.d.ts +3 -0
- package/types/source/providers/inputs/Pict-Provider-Input-Diagram-CSS.d.ts.map +1 -0
- package/types/source/providers/inputs/Pict-Provider-Input-Diagram.d.ts +125 -0
- package/types/source/providers/inputs/Pict-Provider-Input-Diagram.d.ts.map +1 -0
- package/types/source/providers/inputs/Pict-Provider-Input-EntityBundleRequest.d.ts.map +1 -1
- package/types/source/providers/inputs/Pict-Provider-Input-RichText-CSS.d.ts +3 -0
- package/types/source/providers/inputs/Pict-Provider-Input-RichText-CSS.d.ts.map +1 -0
- package/types/source/providers/inputs/Pict-Provider-Input-RichText.d.ts +41 -0
- package/types/source/providers/inputs/Pict-Provider-Input-RichText.d.ts.map +1 -0
- package/types/source/providers/inputs/util/Themeify-SVG.d.ts +48 -0
- package/types/source/providers/inputs/util/Themeify-SVG.d.ts.map +1 -0
- package/types/source/providers/layouts/Pict-Layout-Tabular.d.ts +200 -0
- package/types/source/providers/layouts/Pict-Layout-Tabular.d.ts.map +1 -1
- package/types/source/services/ManifestFactory.d.ts +29 -0
- package/types/source/services/ManifestFactory.d.ts.map +1 -1
- package/types/source/templates/Pict-Template-TabularEditingControls.d.ts +26 -0
- package/types/source/templates/Pict-Template-TabularEditingControls.d.ts.map +1 -0
- package/types/source/templates/Pict-Template-TabularRowLabels.d.ts +28 -0
- package/types/source/templates/Pict-Template-TabularRowLabels.d.ts.map +1 -0
- package/types/source/views/Pict-View-Form-Metacontroller.d.ts +22 -0
- package/types/source/views/Pict-View-Form-Metacontroller.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pict-section-form",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.9",
|
|
4
4
|
"description": "Pict dynamic form sections",
|
|
5
5
|
"main": "source/Pict-Section-Form.js",
|
|
6
6
|
"directories": {
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
"browser-env": "^3.3.0",
|
|
35
35
|
"eslint": "^9.39.2",
|
|
36
36
|
"jquery": "^4.0.0",
|
|
37
|
-
"pict": "^1.0.
|
|
37
|
+
"pict": "^1.0.373",
|
|
38
38
|
"pict-application": "^1.0.34",
|
|
39
|
-
"pict-docuserve": "^1.4.
|
|
39
|
+
"pict-docuserve": "^1.4.19",
|
|
40
40
|
"pict-service-commandlineutility": "^1.0.19",
|
|
41
41
|
"quackage": "^1.3.0",
|
|
42
42
|
"tui-grid": "^4.21.22",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"fable-serviceproviderbase": "^3.0.19",
|
|
48
48
|
"marked": "^4.3.0",
|
|
49
49
|
"pict-provider": "^1.0.13",
|
|
50
|
-
"pict-section-excalidraw": "^1.0.
|
|
50
|
+
"pict-section-excalidraw": "^1.0.3",
|
|
51
51
|
"pict-section-markdowneditor": "^1.0.17",
|
|
52
52
|
"pict-section-tuigrid": "^1.0.31",
|
|
53
53
|
"pict-template": "^1.0.15",
|
package/source/global.d.ts
CHANGED
|
@@ -140,6 +140,16 @@ class CustomInputHandler extends libPictSectionInputExtension
|
|
|
140
140
|
if (Array.isArray(tmpGroupConfig.PostSolvers))
|
|
141
141
|
{
|
|
142
142
|
this.pict.providers.DynamicSolver.executeSolvers(pView, tmpGroupConfig.PostSolvers, `AutofillTriggerGroup hash ${tmpGroupConfig.TriggerGroupHash} post-trigger`);
|
|
143
|
+
const tmpMarshalScope = tmpGroupConfig.MarshalOnComplete;
|
|
144
|
+
if (tmpMarshalScope === true)
|
|
145
|
+
{
|
|
146
|
+
this.pict.views.PictFormMetacontroller.marshalToView();
|
|
147
|
+
}
|
|
148
|
+
else if (tmpMarshalScope)
|
|
149
|
+
{
|
|
150
|
+
this.pict.views.PictFormMetacontroller.marshalSectionToView(tmpMarshalScope.Section);
|
|
151
|
+
this.pict.views.PictFormMetacontroller.marshalInputToView(tmpMarshalScope.Input);
|
|
152
|
+
}
|
|
143
153
|
}
|
|
144
154
|
});
|
|
145
155
|
this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent(
|
|
@@ -181,6 +191,16 @@ class CustomInputHandler extends libPictSectionInputExtension
|
|
|
181
191
|
if (Array.isArray(tmpGroupConfig.PostSolvers))
|
|
182
192
|
{
|
|
183
193
|
this.pict.providers.DynamicSolver.executeSolvers(pView, tmpGroupConfig.PostSolvers, `AutofillTriggerGroup hash ${tmpGroupConfig.TriggerGroupHash} tabular post-trigger`);
|
|
194
|
+
const tmpMarshalScope = tmpGroupConfig.MarshalOnComplete;
|
|
195
|
+
if (tmpMarshalScope === true)
|
|
196
|
+
{
|
|
197
|
+
this.pict.views.PictFormMetacontroller.marshalToView();
|
|
198
|
+
}
|
|
199
|
+
else if (tmpMarshalScope)
|
|
200
|
+
{
|
|
201
|
+
this.pict.views.PictFormMetacontroller.marshalSectionToView(tmpMarshalScope.Section);
|
|
202
|
+
this.pict.views.PictFormMetacontroller.marshalInputToView(tmpMarshalScope.Input);
|
|
203
|
+
}
|
|
184
204
|
}
|
|
185
205
|
});
|
|
186
206
|
this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent(
|
|
@@ -254,6 +274,16 @@ class CustomInputHandler extends libPictSectionInputExtension
|
|
|
254
274
|
if (Array.isArray(tmpAutoFillTriggerGroup.PostSolvers))
|
|
255
275
|
{
|
|
256
276
|
this.pict.providers.DynamicSolver.executeSolvers(pView, tmpAutoFillTriggerGroup.PostSolvers, `AutofillTriggerGroup hash ${tmpAutoFillTriggerGroup.TriggerGroupHash} post-autofill`);
|
|
277
|
+
const tmpMarshalScope = tmpAutoFillTriggerGroup.MarshalOnComplete;
|
|
278
|
+
if (tmpMarshalScope === true)
|
|
279
|
+
{
|
|
280
|
+
this.pict.views.PictFormMetacontroller.marshalToView();
|
|
281
|
+
}
|
|
282
|
+
else if (tmpMarshalScope)
|
|
283
|
+
{
|
|
284
|
+
this.pict.views.PictFormMetacontroller.marshalSectionToView(tmpMarshalScope.Section);
|
|
285
|
+
this.pict.views.PictFormMetacontroller.marshalInputToView(tmpMarshalScope.Input);
|
|
286
|
+
}
|
|
257
287
|
}
|
|
258
288
|
}
|
|
259
289
|
|
|
@@ -54,8 +54,25 @@ const _DefaultProviderConfiguration =
|
|
|
54
54
|
AutoSolveWithApp: false
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
+
/**
|
|
58
|
+
* @typedef {Object} Instance
|
|
59
|
+
* @property {string} mode - 'edit' or 'view'
|
|
60
|
+
* @property {string} slotID - The HTML ID of the content slot for this input
|
|
61
|
+
* @property {string} lastValue - The last known value (SVG string)
|
|
62
|
+
* @property {Object} viewInstance - The editor view instance (if in edit mode)
|
|
63
|
+
* @property {string} viewHash - The hash of the editor view (if in edit mode)
|
|
64
|
+
* @property {Object} input - The input definition object
|
|
65
|
+
*/
|
|
66
|
+
|
|
57
67
|
class PictInputDiagram extends libPictSectionInputExtension
|
|
58
68
|
{
|
|
69
|
+
/**
|
|
70
|
+
* Creates an instance of the PictInputExtensionProvider class.
|
|
71
|
+
*
|
|
72
|
+
* @param {import('pict')} pFable - The Pict instance.
|
|
73
|
+
* @param {Record<string, any>} [pOptions] - The options for the provider.
|
|
74
|
+
* @param {string} [pServiceHash] - The service hash for the provider.
|
|
75
|
+
*/
|
|
59
76
|
constructor(pFable, pOptions, pServiceHash)
|
|
60
77
|
{
|
|
61
78
|
let tmpOptions = Object.assign({}, JSON.parse(JSON.stringify(_DefaultProviderConfiguration)), pOptions);
|
|
@@ -65,6 +82,7 @@ class PictInputDiagram extends libPictSectionInputExtension
|
|
|
65
82
|
/** @type {any} */ this.log;
|
|
66
83
|
|
|
67
84
|
// inputHash → { mode, slotID, lastValue (SVG string), viewInstance?, viewHash?, input }
|
|
85
|
+
/** @type {Record<String, Instance>} */
|
|
68
86
|
this._instances = {};
|
|
69
87
|
|
|
70
88
|
// Register the scoped CSS.
|
|
@@ -78,16 +96,36 @@ class PictInputDiagram extends libPictSectionInputExtension
|
|
|
78
96
|
// Helpers
|
|
79
97
|
// ----------------------------------------------------------------------------
|
|
80
98
|
|
|
99
|
+
/**
|
|
100
|
+
* @param {string} pInputHTMLID - The RawHTMLID of the input.
|
|
101
|
+
* @returns {string} The HTML ID selector for the content display slot corresponding to the input.
|
|
102
|
+
*/
|
|
81
103
|
getContentDisplayHTMLID(pInputHTMLID)
|
|
82
104
|
{
|
|
83
105
|
return `#DISPLAY-FOR-${pInputHTMLID}`;
|
|
84
106
|
}
|
|
85
107
|
|
|
108
|
+
/**
|
|
109
|
+
* @param {string} pInputHTMLID - The RawHTMLID of the input.
|
|
110
|
+
* @param {number} pRowIndex - The row index for tabular inputs.
|
|
111
|
+
* @returns {string} The HTML ID selector for the content display slot corresponding to the tabular input.
|
|
112
|
+
*/
|
|
86
113
|
getTabularContentDisplayInputID(pInputHTMLID, pRowIndex)
|
|
87
114
|
{
|
|
88
115
|
return `#DISPLAY-FOR-TABULAR-${pInputHTMLID}-${pRowIndex}`;
|
|
89
116
|
}
|
|
90
117
|
|
|
118
|
+
/**
|
|
119
|
+
* Resolve the value to use for display/editing, following this precedence:
|
|
120
|
+
* 1. The provided pValue (if a non-empty string)
|
|
121
|
+
* 2. The input's Content property (if a non-empty string)
|
|
122
|
+
* 3. The input's Default property (if a non-empty string)
|
|
123
|
+
* 4. An empty string if none of the above are valid
|
|
124
|
+
*
|
|
125
|
+
* @param {Object} pInput - The input definition object.
|
|
126
|
+
* @param {any} pValue - The value provided for the input.
|
|
127
|
+
* @returns {string} The resolved value to use for display/editing.
|
|
128
|
+
*/
|
|
91
129
|
_resolveValue(pInput, pValue)
|
|
92
130
|
{
|
|
93
131
|
if (typeof pValue === 'string' && pValue.length > 0) return pValue;
|
|
@@ -96,11 +134,20 @@ class PictInputDiagram extends libPictSectionInputExtension
|
|
|
96
134
|
return '';
|
|
97
135
|
}
|
|
98
136
|
|
|
137
|
+
/**
|
|
138
|
+
* @param {any} pValue - The value to check.
|
|
139
|
+
* @return {boolean} True if the value is a string that appears to contain an <svg> element, false otherwise.
|
|
140
|
+
*/
|
|
99
141
|
_isLikelySvg(pValue)
|
|
100
142
|
{
|
|
101
143
|
return (typeof pValue === 'string') && /<svg[\s>]/i.test(pValue);
|
|
102
144
|
}
|
|
103
145
|
|
|
146
|
+
/**
|
|
147
|
+
* @param {string} pSlotID - The HTML ID of the content slot to assign.
|
|
148
|
+
* @param {string} pHTML - The HTML string to assign to the slot.
|
|
149
|
+
* @returns {boolean} True if the assignment was successful, false otherwise.
|
|
150
|
+
*/
|
|
104
151
|
_assignSlotContent(pSlotID, pHTML)
|
|
105
152
|
{
|
|
106
153
|
if (this.pict && this.pict.ContentAssignment &&
|
|
@@ -112,6 +159,11 @@ class PictInputDiagram extends libPictSectionInputExtension
|
|
|
112
159
|
return false;
|
|
113
160
|
}
|
|
114
161
|
|
|
162
|
+
/**
|
|
163
|
+
* @param {string} pInputHTMLID - The RawHTMLID of the input whose hidden value field should be updated.
|
|
164
|
+
* @param {string} pValue - The SVG string to set as the value of the hidden input field.
|
|
165
|
+
* @returns {boolean} True if the value was successfully written and a change event dispatched, false otherwise.
|
|
166
|
+
*/
|
|
115
167
|
_writeHiddenInputValue(pInputHTMLID, pValue)
|
|
116
168
|
{
|
|
117
169
|
let tmpEl = (typeof document !== 'undefined') ? document.getElementById(pInputHTMLID) : null;
|
|
@@ -131,6 +183,9 @@ class PictInputDiagram extends libPictSectionInputExtension
|
|
|
131
183
|
/**
|
|
132
184
|
* Wrap an SVG string in a thin <div> for the view-mode slot. If the value
|
|
133
185
|
* is empty or not an SVG, show an "(empty)" placeholder.
|
|
186
|
+
*
|
|
187
|
+
* @param {string} pValue - The SVG string to wrap for display.
|
|
188
|
+
* @returns {string} The HTML string to assign to the view slot.
|
|
134
189
|
*/
|
|
135
190
|
_buildViewHTML(pValue)
|
|
136
191
|
{
|
|
@@ -141,6 +196,10 @@ class PictInputDiagram extends libPictSectionInputExtension
|
|
|
141
196
|
return `<div class="pict-section-form-diagram-view is-empty">(empty diagram)</div>`;
|
|
142
197
|
}
|
|
143
198
|
|
|
199
|
+
/**
|
|
200
|
+
* @param {Object} pInput - The input definition object.
|
|
201
|
+
* @param {string} pMode - The mode to set ('edit' or 'view').
|
|
202
|
+
*/
|
|
144
203
|
_setSlotModeClass(pInput, pMode)
|
|
145
204
|
{
|
|
146
205
|
if (typeof document === 'undefined') return;
|
|
@@ -494,13 +553,41 @@ class PictInputDiagram extends libPictSectionInputExtension
|
|
|
494
553
|
return super.onInputInitialize(pView, pGroup, pRow, pInput, pValue, pHTMLSelector, pTransactionGUID);
|
|
495
554
|
}
|
|
496
555
|
|
|
556
|
+
/**
|
|
557
|
+
* A tabular input has been initialized (rendered into the DOM)
|
|
558
|
+
*
|
|
559
|
+
* Called when an input has this Provider hash in its 'Providers' array.
|
|
560
|
+
*
|
|
561
|
+
* @param {Object} pView - The view object.
|
|
562
|
+
* @param {Object} pGroup - The group definition object.
|
|
563
|
+
* @param {Object} pInput - The input object.
|
|
564
|
+
* @param {any} pValue - The value of the input object
|
|
565
|
+
* @param {string} pHTMLSelector - The HTML selector for the input object (it will return an array).
|
|
566
|
+
* @param {string} pTransactionGUID - The transaction GUID for the event dispatch.
|
|
567
|
+
* @param {number} pRowIndex - The row index of the tabular data
|
|
568
|
+
*
|
|
569
|
+
* @return {boolean}
|
|
570
|
+
*/
|
|
497
571
|
onInputInitializeTabular(pView, pGroup, pInput, pValue, pHTMLSelector, pRowIndex, pTransactionGUID)
|
|
498
572
|
{
|
|
573
|
+
super.onInputInitializeTabular(pView, pGroup, pInput, pValue, pHTMLSelector, pRowIndex, pTransactionGUID);
|
|
499
574
|
let tmpErr = new Error('Diagram InputType is not supported inside Tabular rows in Phase 1.');
|
|
500
575
|
if (this.log) this.log.warn('[Pict-Input-Diagram] tabular not supported', { inputHash: pInput && pInput.Hash });
|
|
501
576
|
throw tmpErr;
|
|
502
577
|
}
|
|
503
578
|
|
|
579
|
+
/**
|
|
580
|
+
* Fires when data is marshaled to the form for this input.
|
|
581
|
+
*
|
|
582
|
+
* @param {Object} pView - The view object.
|
|
583
|
+
* @param {Object} pGroup - The group definition object.
|
|
584
|
+
* @param {number} pRow - The Row index.
|
|
585
|
+
* @param {Object} pInput - The input object.
|
|
586
|
+
* @param {any} pValue - The value to marshal.
|
|
587
|
+
* @param {string} pHTMLSelector - The HTML selector.
|
|
588
|
+
* @param {string} pTransactionGUID - The transaction GUID for the event dispatch.
|
|
589
|
+
* @returns {boolean} - Returns true if the data was successfully marshaled to the form.
|
|
590
|
+
*/
|
|
504
591
|
onDataMarshalToForm(pView, pGroup, pRow, pInput, pValue, pHTMLSelector, pTransactionGUID)
|
|
505
592
|
{
|
|
506
593
|
let tmpInst = this._instances[pInput.Hash];
|
|
@@ -317,7 +317,17 @@ class CustomInputHandler extends libPictSectionInputExtension
|
|
|
317
317
|
{
|
|
318
318
|
if (Array.isArray(tmpGroupConfig.PostSolvers))
|
|
319
319
|
{
|
|
320
|
-
this.pict.providers.DynamicSolver.executeSolvers(pView, tmpGroupConfig.PostSolvers, `EntityBundleTriggerGroup hash ${tmpGroupConfig.TriggerGroupHash}
|
|
320
|
+
this.pict.providers.DynamicSolver.executeSolvers(pView, tmpGroupConfig.PostSolvers, `EntityBundleTriggerGroup hash ${tmpGroupConfig.TriggerGroupHash} post-trigger`);
|
|
321
|
+
const tmpMarshalScope = tmpGroupConfig.MarshalOnComplete;
|
|
322
|
+
if (tmpMarshalScope === true)
|
|
323
|
+
{
|
|
324
|
+
this.pict.views.PictFormMetacontroller.marshalToView();
|
|
325
|
+
}
|
|
326
|
+
else if (tmpMarshalScope)
|
|
327
|
+
{
|
|
328
|
+
this.pict.views.PictFormMetacontroller.marshalSectionToView(tmpMarshalScope.Section);
|
|
329
|
+
this.pict.views.PictFormMetacontroller.marshalInputToView(tmpMarshalScope.Input);
|
|
330
|
+
}
|
|
321
331
|
}
|
|
322
332
|
});
|
|
323
333
|
}
|
|
@@ -1193,6 +1193,65 @@ class PictFormMetacontroller extends libPictViewClass
|
|
|
1193
1193
|
return false;
|
|
1194
1194
|
}
|
|
1195
1195
|
|
|
1196
|
+
/**
|
|
1197
|
+
* Marshal one or more section views' data to the DOM.
|
|
1198
|
+
*
|
|
1199
|
+
* For values written outside the normal solve -> marshal cycle (e.g. a trigger group's `PostSolvers`
|
|
1200
|
+
* running in an EntityBundleRequest transaction-complete callback). The global equivalent is
|
|
1201
|
+
* `marshalToView()`; this is the section-scoped, cheaper option.
|
|
1202
|
+
*
|
|
1203
|
+
* @param {string|string[]} pSectionHashes - a section hash, or an array of section hashes
|
|
1204
|
+
* @returns {void}
|
|
1205
|
+
*/
|
|
1206
|
+
marshalSectionToView(pSectionHashes)
|
|
1207
|
+
{
|
|
1208
|
+
const tmpSectionHashes = (Array.isArray(pSectionHashes) ? pSectionHashes : [ pSectionHashes ]).filter((pHash) => typeof pHash === 'string' && pHash.length > 0);
|
|
1209
|
+
for (const tmpSectionHash of tmpSectionHashes)
|
|
1210
|
+
{
|
|
1211
|
+
const tmpSectionView = this.getSectionViewFromHash(tmpSectionHash);
|
|
1212
|
+
if (tmpSectionView)
|
|
1213
|
+
{
|
|
1214
|
+
tmpSectionView.marshalToView();
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1219
|
+
/**
|
|
1220
|
+
* Marshal one or more inputs' data to the DOM, wherever they live (finds the owning section view).
|
|
1221
|
+
*
|
|
1222
|
+
* The single-input equivalent of {@link marshalSectionToView}; use it when only specific fields
|
|
1223
|
+
* changed (e.g. a trigger group that computed one read-only attribute).
|
|
1224
|
+
*
|
|
1225
|
+
* @param {string|string[]} pInputHashes - an input hash, or an array of input hashes
|
|
1226
|
+
* @returns {void}
|
|
1227
|
+
*/
|
|
1228
|
+
marshalInputToView(pInputHashes)
|
|
1229
|
+
{
|
|
1230
|
+
const tmpInputHashes = (Array.isArray(pInputHashes) ? pInputHashes : [ pInputHashes ]).filter((pHash) => typeof pHash === 'string' && pHash.length > 0);
|
|
1231
|
+
if (tmpInputHashes.length < 1)
|
|
1232
|
+
{
|
|
1233
|
+
return;
|
|
1234
|
+
}
|
|
1235
|
+
const tmpSectionViews = this.filterViews();
|
|
1236
|
+
for (const tmpInputHash of tmpInputHashes)
|
|
1237
|
+
{
|
|
1238
|
+
for (let i = 0; i < tmpSectionViews.length; i++)
|
|
1239
|
+
{
|
|
1240
|
+
const tmpSectionView = tmpSectionViews[i];
|
|
1241
|
+
if (tmpSectionView === this || typeof tmpSectionView.getInputFromHash !== 'function')
|
|
1242
|
+
{
|
|
1243
|
+
continue;
|
|
1244
|
+
}
|
|
1245
|
+
const tmpInput = tmpSectionView.getInputFromHash(tmpInputHash);
|
|
1246
|
+
if (tmpInput)
|
|
1247
|
+
{
|
|
1248
|
+
tmpSectionView.manualMarshalDataToViewByInput(tmpInput);
|
|
1249
|
+
break;
|
|
1250
|
+
}
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1196
1255
|
/**
|
|
1197
1256
|
* Clears out the manifest description set on the meta controller.
|
|
1198
1257
|
*/
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Unit tests for PictFormMetacontroller.marshalSectionToView / marshalInputToView.
|
|
3
|
+
|
|
4
|
+
Both take a primitive (hash) or an array of hashes, look up the owning view, and marshal — the
|
|
5
|
+
scoped, solver-friendly alternatives to the global marshalToView(). Exercised against a stub `this`
|
|
6
|
+
so we don't need to mount a full form. Used by trigger-group `MarshalOnComplete` after PostSolvers
|
|
7
|
+
that ran outside the normal solve -> marshal cycle.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const Chai = require('chai');
|
|
11
|
+
const Expect = Chai.expect;
|
|
12
|
+
|
|
13
|
+
const libMetacontroller = require('../source/views/Pict-View-Form-Metacontroller.js');
|
|
14
|
+
const marshalSectionToView = libMetacontroller.prototype.marshalSectionToView;
|
|
15
|
+
const marshalInputToView = libMetacontroller.prototype.marshalInputToView;
|
|
16
|
+
|
|
17
|
+
suite('PictFormMetacontroller marshal scoping', () =>
|
|
18
|
+
{
|
|
19
|
+
suite('marshalSectionToView', () =>
|
|
20
|
+
{
|
|
21
|
+
function buildStub()
|
|
22
|
+
{
|
|
23
|
+
const tmpMarshaled = [];
|
|
24
|
+
const tmpStub =
|
|
25
|
+
{
|
|
26
|
+
getSectionViewFromHash: (pHash) => (pHash === 'missing' ? false : { marshalToView: () => { tmpMarshaled.push(pHash); } }),
|
|
27
|
+
};
|
|
28
|
+
return { stub: tmpStub, marshaled: tmpMarshaled };
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
test('a single hash marshals that section view', () =>
|
|
32
|
+
{
|
|
33
|
+
const { stub, marshaled } = buildStub();
|
|
34
|
+
marshalSectionToView.call(stub, 'H');
|
|
35
|
+
Expect(marshaled).to.deep.equal([ 'H' ]);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
test('an array marshals each section view', () =>
|
|
39
|
+
{
|
|
40
|
+
const { stub, marshaled } = buildStub();
|
|
41
|
+
marshalSectionToView.call(stub, [ 'A', 'B' ]);
|
|
42
|
+
Expect(marshaled).to.deep.equal([ 'A', 'B' ]);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test('non-string / empty hashes are filtered; a missing view is skipped without throwing', () =>
|
|
46
|
+
{
|
|
47
|
+
const { stub, marshaled } = buildStub();
|
|
48
|
+
Expect(() => marshalSectionToView.call(stub, [ 'A', '', null, 7, 'missing' ])).to.not.throw();
|
|
49
|
+
Expect(marshaled).to.deep.equal([ 'A' ]);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
test('undefined is a no-op', () =>
|
|
53
|
+
{
|
|
54
|
+
const { stub, marshaled } = buildStub();
|
|
55
|
+
marshalSectionToView.call(stub, undefined);
|
|
56
|
+
Expect(marshaled).to.have.length(0);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
suite('marshalInputToView', () =>
|
|
61
|
+
{
|
|
62
|
+
function buildStub()
|
|
63
|
+
{
|
|
64
|
+
const tmpMarshaled = [];
|
|
65
|
+
const tmpStub =
|
|
66
|
+
{
|
|
67
|
+
_views:
|
|
68
|
+
[
|
|
69
|
+
{ getInputFromHash: () => null, manualMarshalDataToViewByInput: () => { throw new Error('non-owner view should not marshal'); } },
|
|
70
|
+
{ getInputFromHash: (pHash) => (pHash === 'X' ? { Hash: 'X' } : null), manualMarshalDataToViewByInput: (pInput) => { tmpMarshaled.push(pInput.Hash); } },
|
|
71
|
+
],
|
|
72
|
+
filterViews: () => tmpStub._views,
|
|
73
|
+
};
|
|
74
|
+
return { stub: tmpStub, marshaled: tmpMarshaled };
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
test('marshals the input on its owning section view only', () =>
|
|
78
|
+
{
|
|
79
|
+
const { stub, marshaled } = buildStub();
|
|
80
|
+
marshalInputToView.call(stub, 'X');
|
|
81
|
+
Expect(marshaled).to.deep.equal([ 'X' ]);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
test('an input that lives nowhere is a no-op', () =>
|
|
85
|
+
{
|
|
86
|
+
const { stub, marshaled } = buildStub();
|
|
87
|
+
marshalInputToView.call(stub, 'Nope');
|
|
88
|
+
Expect(marshaled).to.have.length(0);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
test('undefined / empty does not even enumerate views', () =>
|
|
92
|
+
{
|
|
93
|
+
let tmpEnumerated = false;
|
|
94
|
+
const tmpStub = { filterViews: () => { tmpEnumerated = true; return []; } };
|
|
95
|
+
marshalInputToView.call(tmpStub, undefined);
|
|
96
|
+
marshalInputToView.call(tmpStub, [ '', null ]);
|
|
97
|
+
Expect(tmpEnumerated).to.equal(false);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
@@ -15,6 +15,9 @@ declare const _exports: {
|
|
|
15
15
|
LifecycleVisualization: typeof import("./views/support/Pict-View-PSF-LifeCycle-Visualization.js");
|
|
16
16
|
DebugViewer: typeof import("./views/support/Pict-View-PSF-DebugViewer.js");
|
|
17
17
|
};
|
|
18
|
+
RichTextInput: typeof import("./providers/inputs/Pict-Provider-Input-RichText.js");
|
|
19
|
+
DiagramInput: typeof import("./providers/inputs/Pict-Provider-Input-Diagram.js");
|
|
20
|
+
themeifySVG: (pSVG: string, pPaletteOrProfile?: object) => string;
|
|
18
21
|
};
|
|
19
22
|
export = _exports;
|
|
20
23
|
//# sourceMappingURL=Pict-Section-Form.d.ts.map
|
|
@@ -15,6 +15,10 @@ declare class PictDynamicFormsSolverBehaviors extends libPictProvider {
|
|
|
15
15
|
/** @type {string} */
|
|
16
16
|
cssHideSectionClass: string;
|
|
17
17
|
cssHideGroupClass: string;
|
|
18
|
+
/** @type {string} */
|
|
19
|
+
cssTabularRowHighlightClass: string;
|
|
20
|
+
/** @type {string} */
|
|
21
|
+
cssTabularColumnHighlightClass: string;
|
|
18
22
|
cssSnippet: string;
|
|
19
23
|
solverOrdinalMap: {};
|
|
20
24
|
setCSSSnippets(pCSSHideClass: any, pCSSSnippet: any): void;
|
|
@@ -150,6 +154,82 @@ declare class PictDynamicFormsSolverBehaviors extends libPictProvider {
|
|
|
150
154
|
* @returns {boolean}
|
|
151
155
|
*/
|
|
152
156
|
colorElementBackground(pElementSet: Array<HTMLElement>, pColor: string, pCSSSelector?: string): boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Interprets a solver-supplied 1/0 (or true/false) flag.
|
|
159
|
+
*
|
|
160
|
+
* Solver numbers arrive as arbitrary-precision strings, so a plain truthiness
|
|
161
|
+
* check would treat the string "0" as true. This normalizes the common
|
|
162
|
+
* "off" representations to false and everything else to true.
|
|
163
|
+
*
|
|
164
|
+
* @param {any} pFlag
|
|
165
|
+
* @returns {boolean}
|
|
166
|
+
*/
|
|
167
|
+
isSolverFlagEnabled(pFlag: any): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Resolves the DOM selector for a tabular group's container div.
|
|
170
|
+
*
|
|
171
|
+
* The tabular group div carries `id="GROUP-<formID>-<groupHash>"` (the same
|
|
172
|
+
* convention the non-tabular group layout uses), so highlight/color solvers
|
|
173
|
+
* can scope their cell queries to a single group.
|
|
174
|
+
*
|
|
175
|
+
* @param {string} pSectionHash - The hash of the section containing the group.
|
|
176
|
+
* @param {string} pGroupHash - The hash of the tabular group.
|
|
177
|
+
* @returns {string|null} A CSS selector for the group container, or null if unresolved.
|
|
178
|
+
*/
|
|
179
|
+
getTabularGroupSelector(pSectionHash: string, pGroupHash: string): string | null;
|
|
180
|
+
/**
|
|
181
|
+
* Adds (pApplyFlag truthy) or removes (pApplyFlag falsy) a highlight class on
|
|
182
|
+
* every cell of a tabular row -- the row labels, editing controls and data
|
|
183
|
+
* cells all get the class because it lands on the row's `<tr>`.
|
|
184
|
+
*
|
|
185
|
+
* @param {string} pSectionHash - The hash of the section containing the tabular group.
|
|
186
|
+
* @param {string} pGroupHash - The hash of the tabular group.
|
|
187
|
+
* @param {number|string} pRowIndex - The zero-based row index.
|
|
188
|
+
* @param {number|string|boolean} pApplyFlag - 1/0 (or true/false) -- add or remove the class.
|
|
189
|
+
* @param {string} [pHighlightClass] - Optional override for the class name.
|
|
190
|
+
* @returns {boolean}
|
|
191
|
+
*/
|
|
192
|
+
highlightTabularRow(pSectionHash: string, pGroupHash: string, pRowIndex: number | string, pApplyFlag: number | string | boolean, pHighlightClass?: string): boolean;
|
|
193
|
+
/**
|
|
194
|
+
* Adds (pApplyFlag truthy) or removes (pApplyFlag falsy) a highlight class on
|
|
195
|
+
* every cell of a tabular column -- both the `<th>` header cell and every
|
|
196
|
+
* `<td>` data cell that carries the matching `data-tabular-column-index`.
|
|
197
|
+
*
|
|
198
|
+
* @param {string} pSectionHash - The hash of the section containing the tabular group.
|
|
199
|
+
* @param {string} pGroupHash - The hash of the tabular group.
|
|
200
|
+
* @param {number|string} pColumnIndex - The column's input index (descriptor InputIndex).
|
|
201
|
+
* @param {number|string|boolean} pApplyFlag - 1/0 (or true/false) -- add or remove the class.
|
|
202
|
+
* @param {string} [pHighlightClass] - Optional override for the class name.
|
|
203
|
+
* @returns {boolean}
|
|
204
|
+
*/
|
|
205
|
+
highlightTabularColumn(pSectionHash: string, pGroupHash: string, pColumnIndex: number | string, pApplyFlag: number | string | boolean, pHighlightClass?: string): boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Sets (pApplyFlag truthy) or clears (pApplyFlag falsy) an inline background
|
|
208
|
+
* color on every data cell of a tabular row.
|
|
209
|
+
*
|
|
210
|
+
* The color is applied with `important` priority so it beats both host
|
|
211
|
+
* table-striping CSS and the highlight classes.
|
|
212
|
+
*
|
|
213
|
+
* @param {string} pSectionHash - The hash of the section containing the tabular group.
|
|
214
|
+
* @param {string} pGroupHash - The hash of the tabular group.
|
|
215
|
+
* @param {number|string} pRowIndex - The zero-based row index.
|
|
216
|
+
* @param {string} pColor - The HTML color to apply (e.g. #FF0000).
|
|
217
|
+
* @param {number|string|boolean} pApplyFlag - 1/0 (or true/false) -- apply or clear the color.
|
|
218
|
+
* @returns {boolean}
|
|
219
|
+
*/
|
|
220
|
+
colorTabularRow(pSectionHash: string, pGroupHash: string, pRowIndex: number | string, pColor: string, pApplyFlag: number | string | boolean): boolean;
|
|
221
|
+
/**
|
|
222
|
+
* Sets (pApplyFlag truthy) or clears (pApplyFlag falsy) an inline background
|
|
223
|
+
* color on every cell of a tabular column -- header `<th>` plus all data `<td>`.
|
|
224
|
+
*
|
|
225
|
+
* @param {string} pSectionHash - The hash of the section containing the tabular group.
|
|
226
|
+
* @param {string} pGroupHash - The hash of the tabular group.
|
|
227
|
+
* @param {number|string} pColumnIndex - The column's input index (descriptor InputIndex).
|
|
228
|
+
* @param {string} pColor - The HTML color to apply (e.g. #FF0000).
|
|
229
|
+
* @param {number|string|boolean} pApplyFlag - 1/0 (or true/false) -- apply or clear the color.
|
|
230
|
+
* @returns {boolean}
|
|
231
|
+
*/
|
|
232
|
+
colorTabularColumn(pSectionHash: string, pGroupHash: string, pColumnIndex: number | string, pColor: string, pApplyFlag: number | string | boolean): boolean;
|
|
153
233
|
/**
|
|
154
234
|
* Gets a value from the global form data by hash, falling back to address resolution
|
|
155
235
|
* using the global manyfest from the metacontroller.
|
|
@@ -191,6 +271,41 @@ declare class PictDynamicFormsSolverBehaviors extends libPictProvider {
|
|
|
191
271
|
*/
|
|
192
272
|
getSectionTabularFormData(pSectionHash: string, pGroupHash: string, pRowIndex: number | string, pHashOrAddress: string): any;
|
|
193
273
|
logValues(...args: any[]): any;
|
|
274
|
+
/**
|
|
275
|
+
* Resolves the comprehension destination object, creating intermediate objects along the configured
|
|
276
|
+
* address if they don't exist. The address is read from
|
|
277
|
+
* `PictFormMetacontroller.comprehensionDestinationAddress` (default `AppData.FormEntityComprehensions`)
|
|
278
|
+
* and resolved against the pict instance, so callers can target any subtree (`AppData.*`, `Bundle.*`, ...).
|
|
279
|
+
*
|
|
280
|
+
* @returns {Record<string, any>|null} The destination object (mutable), or null if the address resolves
|
|
281
|
+
* to a non-object value the function can't safely write into (e.g. a number).
|
|
282
|
+
*/
|
|
283
|
+
resolveComprehensionDestination(): Record<string, any> | null;
|
|
284
|
+
/**
|
|
285
|
+
* Writes a single property/value into the configured comprehension destination, nested as
|
|
286
|
+
* `Context -> Entity -> GUID -> Property = Value`.
|
|
287
|
+
*
|
|
288
|
+
* `Context` is a manyfest address (dot-separated) so dotted contexts like
|
|
289
|
+
* `OnApprovalAction.Approve` produce nested context branches. `Entity`, `GUID`, and `Property`
|
|
290
|
+
* are treated as opaque property names -- dots in them are NOT interpreted as nesting (so an
|
|
291
|
+
* entity GUID like `0x73278432987` lands as a single key).
|
|
292
|
+
*
|
|
293
|
+
* Successive calls to the same `(Context, Entity, GUID)` accumulate properties on the same
|
|
294
|
+
* record. Successive calls to the same `(Context, Entity, GUID, Property)` overwrite.
|
|
295
|
+
*
|
|
296
|
+
* The destination address is configured on the metacontroller via
|
|
297
|
+
* `comprehensionDestinationAddress` (default `AppData.FormEntityComprehensions`) -- see
|
|
298
|
+
* `docs/Comprehensions.md`.
|
|
299
|
+
*
|
|
300
|
+
* @param {string} pContext - The comprehension context address (e.g. `"OnSave"`, `"OnApprovalAction.Approve"`).
|
|
301
|
+
* @param {string} pEntity - The entity name (e.g. `"Book"`).
|
|
302
|
+
* @param {string} pGUID - The external GUID for the record (e.g. `"0x73278432987"`).
|
|
303
|
+
* @param {string} pProperty - The property to set on the record (e.g. `"Title"`).
|
|
304
|
+
* @param {any} pValue - The value to write.
|
|
305
|
+
*
|
|
306
|
+
* @returns {any} `pValue` on success, `undefined` if the call was a no-op (invalid args / unwritable destination).
|
|
307
|
+
*/
|
|
308
|
+
addComprehensionEntity(pContext: string, pEntity: string, pGUID: string, pProperty: string, pValue: any): any;
|
|
194
309
|
}
|
|
195
310
|
declare namespace PictDynamicFormsSolverBehaviors {
|
|
196
311
|
export { _DefaultProviderConfiguration as default_configuration };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pict-Provider-DynamicFormSolverBehaviors.d.ts","sourceRoot":"","sources":["../../../source/providers/Pict-Provider-DynamicFormSolverBehaviors.js"],"names":[],"mappings":";AAaA;;;;;GAKG;AACH;IAeE,kBAAkB;IAClB,SADW,GAAG,CACF;IACZ,qFAAqF;IACrF,MADW,OAAO,MAAM,CAAC,GAAG;QAAE,WAAW,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,UAAU,CAAC,CAAA;KAAE,CACxE;IAIT,qBAAqB;IACrB,qBADW,MAAM,CAC4C;IAC7D,0BAAyD;IACzD,
|
|
1
|
+
{"version":3,"file":"Pict-Provider-DynamicFormSolverBehaviors.d.ts","sourceRoot":"","sources":["../../../source/providers/Pict-Provider-DynamicFormSolverBehaviors.js"],"names":[],"mappings":"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"}
|
|
@@ -97,6 +97,30 @@ declare class DynamicTabularData extends libPictProvider {
|
|
|
97
97
|
* @returns {boolean} - Returns true if the row was successfully deleted, false otherwise.
|
|
98
98
|
*/
|
|
99
99
|
deleteDynamicTableRow(pView: any, pGroupIndex: number, pRowIndex: number | string): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Rebuild every OTHER section-form view whose DynamicColumns are sourced from
|
|
102
|
+
* pSourceRecordSetAddress: re-resolve their generated columns and rebuild their
|
|
103
|
+
* template + DOM. Call this in the RENDER phase (after a source row was added or
|
|
104
|
+
* removed, before solving + marshaling) so dependent tables paint their column
|
|
105
|
+
* changes up front instead of mid-marshal. Idempotent and safe when there are no
|
|
106
|
+
* dependent views (it simply finds none).
|
|
107
|
+
*
|
|
108
|
+
* @param {string} pSourceRecordSetAddress - RecordSetAddress whose rows drive the columns.
|
|
109
|
+
*/
|
|
110
|
+
_rebuildDependentDynamicColumnViews(pSourceRecordSetAddress: string): void;
|
|
111
|
+
/**
|
|
112
|
+
* For position-keyed DynamicColumns (KeyBy: "Position") sourced from
|
|
113
|
+
* pSourceRecordSetAddress, shift each dependent row's positional cells down past
|
|
114
|
+
* a just-removed source index so values stay aligned with their column. Cells are
|
|
115
|
+
* addressed by resolving the generator's InformaryDataAddressTemplate with the
|
|
116
|
+
* synthetic { __Index } record, the same way columns are generated. No-op for
|
|
117
|
+
* value-keyed generators (their data stays attached to the stable value).
|
|
118
|
+
*
|
|
119
|
+
* @param {string} pSourceRecordSetAddress - RecordSetAddress of the deleted-from source.
|
|
120
|
+
* @param {number} pDeletedIndex - Index of the source row that was removed.
|
|
121
|
+
* @param {number} pOriginalLength - Source row count BEFORE the removal.
|
|
122
|
+
*/
|
|
123
|
+
_spliceDependentPositionalColumns(pSourceRecordSetAddress: string, pDeletedIndex: number, pOriginalLength: number): void;
|
|
100
124
|
}
|
|
101
125
|
declare namespace DynamicTabularData {
|
|
102
126
|
export { _DefaultProviderConfiguration as default_configuration, ElementDescriptor };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pict-Provider-DynamicTabularData.d.ts","sourceRoot":"","sources":["../../../source/providers/Pict-Provider-DynamicTabularData.js"],"names":[],"mappings":";AAaA;;;GAGG;AAEH;;GAEG;AACH;IAcE,kBAAkB;IAClB,SADW,GAAG,CACF;IACZ,6BAA6B;IAC7B,MADW,OAAO,MAAM,CAAC,CAChB;IAKV;;;;;;OAMG;IACH,6CAHW,MAAM,GACJ,cAAa,OAAO,CAehC;IAED;;;;;;;OAOG;IACH,+CAJW,MAAM,eACN,MAAM,GACJ,iBAAiB,GAAC,OAAO,CAiBrC;IAED;;;;;;;OAOG;IACH,oDAJW,MAAM,cACN,MAAM,GACJ,iBAAiB,GAAC,OAAO,CA+BrC;IAED;;;;;;;OAOG;IACH,8CAJW,MAAM,kBACN,MAAM,GACJ,OAAO,MAAO,CAkD1B;IAED;;;;;OAKG;IACH,+CAFW,MAAM,
|
|
1
|
+
{"version":3,"file":"Pict-Provider-DynamicTabularData.d.ts","sourceRoot":"","sources":["../../../source/providers/Pict-Provider-DynamicTabularData.js"],"names":[],"mappings":";AAaA;;;GAGG;AAEH;;GAEG;AACH;IAcE,kBAAkB;IAClB,SADW,GAAG,CACF;IACZ,6BAA6B;IAC7B,MADW,OAAO,MAAM,CAAC,CAChB;IAKV;;;;;;OAMG;IACH,6CAHW,MAAM,GACJ,cAAa,OAAO,CAehC;IAED;;;;;;;OAOG;IACH,+CAJW,MAAM,eACN,MAAM,GACJ,iBAAiB,GAAC,OAAO,CAiBrC;IAED;;;;;;;OAOG;IACH,oDAJW,MAAM,cACN,MAAM,GACJ,iBAAiB,GAAC,OAAO,CA+BrC;IAED;;;;;;;OAOG;IACH,8CAJW,MAAM,kBACN,MAAM,GACJ,OAAO,MAAO,CAkD1B;IAED;;;;;OAKG;IACH,+CAFW,MAAM,QAqEhB;IAGD;;;;;OAKG;IACH,4DAFW,MAAM,QAyBhB;IAED;;;;;;;;OAQG;IACH,iDALW,MAAM,aACN,MAAM,GAAC,MAAM,gBACb,MAAM,GACJ,OAAO,CA4BnB;IAED;;;;;;;OAOG;IACH,iDAJW,MAAM,aACN,MAAM,GAAC,MAAM,GACX,OAAO,CA2BnB;IAED;;;;;;;OAOG;IACH,+CAJW,MAAM,aACN,MAAM,GAAC,MAAM,GACX,OAAO,CAgCnB;IAGD;;;;;;;OAOG;IACH,+CAJW,MAAM,aACN,MAAM,GAAC,MAAM,GACX,OAAO,CA6EnB;IAED;;;;;;;;;OASG;IACH,6DAFW,MAAM,QAqDhB;IAED;;;;;;;;;;;OAWG;IACH,2DAJW,MAAM,iBACN,MAAM,mBACN,MAAM,QAoFhB;CACD;;;;;AAxoBD,kCAAkC;AAClC,6CADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAS3B;;;;;UAIW,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pict-Provider-DynamicTemplates.d.ts","sourceRoot":"","sources":["../../../source/providers/Pict-Provider-DynamicTemplates.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Pict-Provider-DynamicTemplates.d.ts","sourceRoot":"","sources":["../../../source/providers/Pict-Provider-DynamicTemplates.js"],"names":[],"mappings":";AAmCA;;;GAGG;AACH;IAeE,kBAAkB;IAClB,SADW,GAAG,CACF;IACZ,6BAA6B;IAC7B,MADW,OAAO,MAAM,CAAC,CAChB;IA+BV;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,2CA4DC;CACD;;;;;AAlJD,kCAAkC;AAClC,6CADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAS3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pict-Provider-Input-AutofillTriggerGroup.d.ts","sourceRoot":"","sources":["../../../../source/providers/inputs/Pict-Provider-Input-AutofillTriggerGroup.js"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH;IAWE,6BAA6B;IAC7B,MADW,OAAO,MAAM,CAAC,CAChB;IAKV,oDAYC;IAED,sGAwBC;IAED,6HAwBC;IAGD;;;;;;;;;OASG;IACH,8CALW,GAAG,iBACH,MAAM,oBACN,MAAM,GACJ,GAAG,
|
|
1
|
+
{"version":3,"file":"Pict-Provider-Input-AutofillTriggerGroup.d.ts","sourceRoot":"","sources":["../../../../source/providers/inputs/Pict-Provider-Input-AutofillTriggerGroup.js"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH;IAWE,6BAA6B;IAC7B,MADW,OAAO,MAAM,CAAC,CAChB;IAKV,oDAYC;IAED,sGAwBC;IAED,6HAwBC;IAGD;;;;;;;;;OASG;IACH,8CALW,GAAG,iBACH,MAAM,oBACN,MAAM,GACJ,GAAG,CAwCf;IAED;;;;;;;;;;OAUG;IACH,qDANW,GAAG,iBACH,MAAM,aACN,MAAM,oBACN,MAAM,GACJ,GAAG,CAwCf;CA4JD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pict-Provider-Input-Diagram-CSS.d.ts","sourceRoot":"","sources":["../../../../source/providers/inputs/Pict-Provider-Input-Diagram-CSS.js"],"names":[],"mappings":""}
|