pict-section-recordset 1.0.66 → 1.0.68
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/docs/_brand.json +18 -0
- package/docs/_cover.md +1 -1
- package/docs/_version.json +7 -0
- package/docs/index.html +2 -4
- package/docs/retold-catalog.json +33 -1
- package/docs/retold-keyword-index.json +1 -1
- package/example_applications/bookstore/Bookstore-Application.js +1 -1
- package/example_applications/bookstore/css/bookstore.css +15 -15
- package/example_applications/bookstore/css/pure.min.css +1 -1
- package/example_applications/bookstore/views/PictView-Bookstore-Dashboard.js +3 -3
- package/example_applications/bookstore/views/PictView-Bookstore-Navigation.js +9 -9
- package/example_applications/index.html +3 -3
- package/example_applications/mocks/book-edit-view.html +5 -5
- package/example_applications/mocks/book-read-view.html +5 -5
- package/example_applications/mocks/list-view.html +6 -6
- package/example_applications/simple_entity/Simple-RecordSet-Application.js +2 -2
- package/example_applications/simple_entity/html/index.html +14 -14
- package/package.json +7 -6
- package/source/providers/RecordSet-RecordProvider-MeadowEndpoints.js +1 -1
- package/source/services/RecordsSet-MetaController.js +22 -0
- package/source/templates/Pict-Template-FilterInstanceViews.js +1 -0
- package/source/views/dashboard/RecordSet-Dashboard-RecordListEntry.js +2 -2
- package/source/views/dashboard/RecordSet-Dashboard-RecordListHeader.js +2 -2
- package/source/views/list/RecordSet-List-RecordListEntry.js +2 -2
- package/source/views/list/RecordSet-List-RecordListHeader.js +2 -2
- package/test/PictSectionRecordSet-Basic_tests.js +83 -0
- package/types/Pict-Section-RecordSet.d.ts +2 -0
- package/types/providers/Filter-Data-Provider.d.ts +1 -0
- package/types/providers/Filter-Data-Provider.d.ts.map +1 -1
- package/types/providers/RecordSet-DynamicRecordsetSolver.d.ts +6 -0
- package/types/providers/RecordSet-DynamicRecordsetSolver.d.ts.map +1 -1
- package/types/providers/RecordSet-RecordProvider-MeadowEndpoints.d.ts +8 -0
- package/types/providers/RecordSet-RecordProvider-MeadowEndpoints.d.ts.map +1 -1
- package/types/providers/RecordSet-Router.d.ts +2 -0
- package/types/providers/RecordSet-Router.d.ts.map +1 -1
- package/types/services/RecordsSet-MetaController.d.ts +10 -5
- package/types/services/RecordsSet-MetaController.d.ts.map +1 -1
- package/types/templates/Pict-Template-FilterInstanceViews.d.ts +42 -2
- package/types/templates/Pict-Template-FilterInstanceViews.d.ts.map +1 -1
- package/types/templates/Pict-Template-FilterView.d.ts +0 -2
- package/types/templates/Pict-Template-FilterView.d.ts.map +1 -1
- package/types/views/Filter-PersistenceView.d.ts +31 -6
- package/types/views/Filter-PersistenceView.d.ts.map +1 -1
- package/types/views/RecordSet-Filters.d.ts +31 -0
- package/types/views/RecordSet-Filters.d.ts.map +1 -1
- package/types/views/RecordSet-RecordBaseView.d.ts +2 -0
- package/types/views/RecordSet-RecordBaseView.d.ts.map +1 -1
- package/types/views/dashboard/RecordSet-Dashboard.d.ts +2 -0
- package/types/views/dashboard/RecordSet-Dashboard.d.ts.map +1 -1
- package/docs/css/docuserve.css +0 -73
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
/* --- Header Bar --- */
|
|
15
15
|
.pict-example-header { display: flex; align-items: stretch; background: #264653; border-bottom: 3px solid #E76F51; }
|
|
16
|
-
.pict-example-badge { background: #E76F51; color: #fff; padding: 0.6rem 1rem; font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; display: flex; align-items: center; gap: 0.5rem; }
|
|
17
|
-
.pict-example-badge svg { width: 14px; height: 14px; fill: #fff; flex-shrink: 0; }
|
|
16
|
+
.pict-example-badge { background: #E76F51; color: var(--theme-color-background-panel, #fff); padding: 0.6rem 1rem; font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; display: flex; align-items: center; gap: 0.5rem; }
|
|
17
|
+
.pict-example-badge svg { width: 14px; height: 14px; fill: var(--theme-color-background-panel, #fff); flex-shrink: 0; }
|
|
18
18
|
.pict-example-app-name { padding: 0.6rem 1rem; color: #FAEDCD; font-size: 1.1rem; font-weight: 600; display: flex; align-items: center; }
|
|
19
19
|
.pict-example-module { margin-left: auto; padding: 0.6rem 1rem; color: #D4A373; font-size: 0.75rem; display: flex; align-items: center; letter-spacing: 0.03em; }
|
|
20
20
|
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
/* --- Content Area --- */
|
|
28
28
|
.pict-example-content { padding: 1.5rem; }
|
|
29
|
-
#PRSP_Container { background: #fff; border: 1px solid #D4A373; border-top: 4px solid #E76F51; border-radius: 6px; padding: 1.25rem; box-shadow: 0 2px 8px rgba(38,70,83,0.08); }
|
|
29
|
+
#PRSP_Container { background: var(--theme-color-background-panel, #fff); border: 1px solid #D4A373; border-top: 4px solid #E76F51; border-radius: 6px; padding: 1.25rem; box-shadow: 0 2px 8px rgba(38,70,83,0.08); }
|
|
30
30
|
|
|
31
31
|
/* --- Form Element Styling --- */
|
|
32
32
|
#PRSP_Container input[type="text"],
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
#PRSP_Container h1, #PRSP_Container h2, #PRSP_Container h3, #PRSP_Container h4 { color: #264653; }
|
|
43
43
|
#PRSP_Container button,
|
|
44
44
|
#PRSP_Container input[type="button"],
|
|
45
|
-
#PRSP_Container input[type="submit"] { background: #E76F51; color: #fff; border: none; padding: 0.5rem 1.25rem; border-radius: 4px; font-size: 0.85rem; font-weight: 600; cursor: pointer; }
|
|
45
|
+
#PRSP_Container input[type="submit"] { background: #E76F51; color: var(--theme-color-background-panel, #fff); border: none; padding: 0.5rem 1.25rem; border-radius: 4px; font-size: 0.85rem; font-weight: 600; cursor: pointer; }
|
|
46
46
|
#PRSP_Container button:hover,
|
|
47
47
|
#PRSP_Container input[type="button"]:hover,
|
|
48
48
|
#PRSP_Container input[type="submit"]:hover { background: #C45A3E; }
|
|
@@ -68,10 +68,10 @@
|
|
|
68
68
|
|
|
69
69
|
/* Filter instances container */
|
|
70
70
|
#PRSP_Filter_Instances { display: flex; flex-direction: column; gap: 0.5rem; }
|
|
71
|
-
#PRSP_Filter_Instances > div { display: flex; align-items: center; gap: 0.5rem; background: #fff; border: 1px solid #E8D9C0; border-radius: 4px; padding: 0.5rem 0.75rem; flex-wrap: wrap; }
|
|
71
|
+
#PRSP_Filter_Instances > div { display: flex; align-items: center; gap: 0.5rem; background: var(--theme-color-background-panel, #fff); border: 1px solid #E8D9C0; border-radius: 4px; padding: 0.5rem 0.75rem; flex-wrap: wrap; }
|
|
72
72
|
|
|
73
73
|
/* Remove (-) buttons in filter rows */
|
|
74
|
-
#PRSP_Filter_Instances > div > button[type="button"] { background: #B33030; color: #fff; border: none; width: 1.6rem; height: 1.6rem; border-radius: 50%; font-size: 0.85rem; font-weight: 700; cursor: pointer; flex-shrink: 0; padding: 0; display: flex; align-items: center; justify-content: center; line-height: 1; }
|
|
74
|
+
#PRSP_Filter_Instances > div > button[type="button"] { background: #B33030; color: var(--theme-color-background-panel, #fff); border: none; width: 1.6rem; height: 1.6rem; border-radius: 50%; font-size: 0.85rem; font-weight: 700; cursor: pointer; flex-shrink: 0; padding: 0; display: flex; align-items: center; justify-content: center; line-height: 1; }
|
|
75
75
|
#PRSP_Filter_Instances > div > button[type="button"]:hover { background: #8B2020; }
|
|
76
76
|
|
|
77
77
|
/* Filter labels (spans) */
|
|
@@ -111,9 +111,9 @@
|
|
|
111
111
|
#PRSP_Filter_Form > fieldset:nth-child(3) { border-top: 1px solid #E8D9C0; margin-top: 0.25rem; padding-top: 0.6rem; }
|
|
112
112
|
#PRSP_Filter_Button_Clear { background: #264653 !important; color: #FAEDCD !important; }
|
|
113
113
|
#PRSP_Filter_Button_Clear:hover { background: #1A3340 !important; }
|
|
114
|
-
#PRSP_Filter_Button_Reset { background: #D4A373 !important; color: #fff !important; }
|
|
114
|
+
#PRSP_Filter_Button_Reset { background: #D4A373 !important; color: var(--theme-color-background-panel, #fff) !important; }
|
|
115
115
|
#PRSP_Filter_Button_Reset:hover { background: #B88A5C !important; }
|
|
116
|
-
#PRSP_Filter_Button_Apply { background: #E76F51 !important; color: #fff !important; }
|
|
116
|
+
#PRSP_Filter_Button_Apply { background: #E76F51 !important; color: var(--theme-color-background-panel, #fff) !important; }
|
|
117
117
|
#PRSP_Filter_Button_Apply:hover { background: #C45A3E !important; }
|
|
118
118
|
#PRSP_Filter_Button_Add { background: #264653 !important; color: #FAEDCD !important; width: 2rem; height: 2rem; border-radius: 50% !important; font-size: 1rem; font-weight: 700; display: flex !important; align-items: center; justify-content: center; padding: 0 !important; }
|
|
119
119
|
#PRSP_Filter_Button_Add:hover { background: #1A3340 !important; }
|
|
@@ -121,8 +121,8 @@
|
|
|
121
121
|
#PRSP_Filter_Button_Manage:hover { background: #1A3340 !important; }
|
|
122
122
|
|
|
123
123
|
/* Dropdowns / popovers inside filters */
|
|
124
|
-
#PRSP-SUBSET-Filters-Template-Add-Filter-Container { background: #fff; border: 1px solid #D4A373; border-radius: 4px; padding: 0.5rem; margin-top: 0.25rem; box-shadow: 0 2px 8px rgba(38,70,83,0.12); }
|
|
125
|
-
#FilterPersistenceView-Container { background: #fff; border: 1px solid #D4A373; border-radius: 4px; padding: 0.5rem; margin-top: 0.25rem; box-shadow: 0 2px 8px rgba(38,70,83,0.12); }
|
|
124
|
+
#PRSP-SUBSET-Filters-Template-Add-Filter-Container { background: var(--theme-color-background-panel, #fff); border: 1px solid #D4A373; border-radius: 4px; padding: 0.5rem; margin-top: 0.25rem; box-shadow: 0 2px 8px rgba(38,70,83,0.12); }
|
|
125
|
+
#FilterPersistenceView-Container { background: var(--theme-color-background-panel, #fff); border: 1px solid #D4A373; border-radius: 4px; padding: 0.5rem; margin-top: 0.25rem; box-shadow: 0 2px 8px rgba(38,70,83,0.12); }
|
|
126
126
|
|
|
127
127
|
/* --- Pagination --- */
|
|
128
128
|
#RSP_Upper_Pagination_Container,
|
|
@@ -136,17 +136,17 @@
|
|
|
136
136
|
#RSP_Upper_Pagination_Container ul li a,
|
|
137
137
|
#RSP_Lower_Pagination_Container ul li a { display: block; padding: 0.35rem 0.75rem; border: 1px solid #D4A373; border-radius: 4px; text-decoration: none; color: #264653; font-size: 0.8rem; font-weight: 500; transition: background 0.15s, color 0.15s; }
|
|
138
138
|
#RSP_Upper_Pagination_Container ul li a:hover,
|
|
139
|
-
#RSP_Lower_Pagination_Container ul li a:hover { background: #E76F51; color: #fff; border-color: #E76F51; }
|
|
139
|
+
#RSP_Lower_Pagination_Container ul li a:hover { background: #E76F51; color: var(--theme-color-background-panel, #fff); border-color: #E76F51; }
|
|
140
140
|
|
|
141
141
|
/* --- Page Number Links --- */
|
|
142
142
|
#PRSP_List_Container > div { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-bottom: 0.5rem; }
|
|
143
|
-
a[class^="page-offset"] { display: inline-block; padding: 0.3rem 0.6rem; border: 1px solid #D4A373; border-radius: 4px; text-decoration: none; color: #264653; font-size: 0.8rem; font-weight: 500; transition: background 0.15s, color 0.15s; background: #fff; }
|
|
144
|
-
a[class^="page-offset"]:hover { background: #E76F51; color: #fff; border-color: #E76F51; }
|
|
143
|
+
a[class^="page-offset"] { display: inline-block; padding: 0.3rem 0.6rem; border: 1px solid #D4A373; border-radius: 4px; text-decoration: none; color: #264653; font-size: 0.8rem; font-weight: 500; transition: background 0.15s, color 0.15s; background: var(--theme-color-background-panel, #fff); }
|
|
144
|
+
a[class^="page-offset"]:hover { background: #E76F51; color: var(--theme-color-background-panel, #fff); border-color: #E76F51; }
|
|
145
145
|
|
|
146
146
|
/* --- List Table Refinements --- */
|
|
147
147
|
#PRSP_List_Table { width: 100%; border-collapse: collapse; }
|
|
148
148
|
#PRSP_List_Table th { background: #264653 !important; color: #FAEDCD !important; padding: 0.6rem 0.75rem !important; border-bottom: none !important; text-align: left; font-size: 0.8rem; font-weight: 600; white-space: nowrap; }
|
|
149
|
-
#PRSP_List_Table td { padding: 0.6rem 0.75rem !important; border-bottom: 1px solid #E8D9C0 !important; font-size: 0.85rem; background: #fff; vertical-align: middle; }
|
|
149
|
+
#PRSP_List_Table td { padding: 0.6rem 0.75rem !important; border-bottom: 1px solid #E8D9C0 !important; font-size: 0.85rem; background: var(--theme-color-background-panel, #fff); vertical-align: middle; }
|
|
150
150
|
#PRSP_List_Table tr:nth-child(even) td { background: #FFF9F0; }
|
|
151
151
|
#PRSP_List_Table tr:hover td { background: #FFF0E0; }
|
|
152
152
|
#PRSP_List_Table img { max-width: 80px; max-height: 100px; border-radius: 3px; border: 1px solid #E8D9C0; }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pict-section-recordset",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.68",
|
|
4
4
|
"description": "Pict dynamic record set management views",
|
|
5
5
|
"main": "source/Pict-Section-RecordSet.js",
|
|
6
6
|
"directories": {
|
|
@@ -33,16 +33,17 @@
|
|
|
33
33
|
"browser-env": "^3.3.0",
|
|
34
34
|
"eslint": "^9.28.0",
|
|
35
35
|
"jquery": "^3.7.1",
|
|
36
|
-
"pict": "^1.0.
|
|
37
|
-
"pict-application": "^1.0.
|
|
36
|
+
"pict": "^1.0.371",
|
|
37
|
+
"pict-application": "^1.0.34",
|
|
38
|
+
"pict-docuserve": "^1.0.1",
|
|
38
39
|
"pict-service-commandlineutility": "^1.0.19",
|
|
39
|
-
"quackage": "^1.
|
|
40
|
+
"quackage": "^1.2.3",
|
|
40
41
|
"typescript": "^5.9.3"
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
43
44
|
"fable-serviceproviderbase": "^3.0.19",
|
|
44
|
-
"pict-provider": "^1.0.
|
|
45
|
-
"pict-router": "^1.0.
|
|
45
|
+
"pict-provider": "^1.0.13",
|
|
46
|
+
"pict-router": "^1.0.10",
|
|
46
47
|
"pict-section-form": "^1.0.196",
|
|
47
48
|
"pict-template": "^1.0.15",
|
|
48
49
|
"pict-view": "^1.0.68",
|
|
@@ -237,7 +237,7 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
|
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
|
-
this.pict.EntityProvider.
|
|
240
|
+
this.pict.EntityProvider.cacheConnectedEntityRecordsWithoutCount(recordsReturn, IDFields, ['User', 'User'], false, () =>
|
|
241
241
|
{
|
|
242
242
|
resolve({ Records: recordsReturn, Facets: { } });
|
|
243
243
|
});
|
|
@@ -517,6 +517,28 @@ class RecordSetMetacontroller extends libFableServiceProviderBase
|
|
|
517
517
|
return this.manifests[pScope];
|
|
518
518
|
}
|
|
519
519
|
|
|
520
|
+
/**
|
|
521
|
+
* Register a manifest at runtime, after initialization. This is the
|
|
522
|
+
* equivalent of adding a manifest to `fable.settings.Manifests` before
|
|
523
|
+
* init, but callable after the fact.
|
|
524
|
+
*
|
|
525
|
+
* @param {Record<string, any>} pManifest - The manifest to register. Must have `Scope` and `Descriptors`.
|
|
526
|
+
*/
|
|
527
|
+
addManifest(pManifest)
|
|
528
|
+
{
|
|
529
|
+
if (!pManifest || !pManifest.Scope || !pManifest.Descriptors)
|
|
530
|
+
{
|
|
531
|
+
this.pict.log.error(`RecordSetMetacontroller: addManifest called with invalid manifest.`, pManifest);
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
if (!pManifest.Form)
|
|
535
|
+
{
|
|
536
|
+
this.generateManifestTableCells(pManifest);
|
|
537
|
+
}
|
|
538
|
+
this.manifestDefinitions[pManifest.Scope] = pManifest;
|
|
539
|
+
this.manifests[pManifest.Scope] = pManifest.Form ? pManifest : this.pict.newManyfest(pManifest);
|
|
540
|
+
}
|
|
541
|
+
|
|
520
542
|
/**
|
|
521
543
|
* @param {Record<string, any>} pManifest - The manifest to generate table cells for.
|
|
522
544
|
*/
|
|
@@ -296,6 +296,7 @@ class PictTemplateFilterInstanceViewInstruction extends libPictTemplate
|
|
|
296
296
|
// transaction queue instead of the dashboard's.
|
|
297
297
|
const tmpFilterTransactionHash = `FilterInstance-${tmpView.Hash}-${tmpRenderGUID}`;
|
|
298
298
|
this.pict.TransactionTracking.registerTransaction(tmpFilterTransactionHash);
|
|
299
|
+
/** @type {import('pict-view').Renderable} */
|
|
299
300
|
const tmpFilterRootRenderable =
|
|
300
301
|
{
|
|
301
302
|
RenderableHash: '__Virtual',
|
|
@@ -59,7 +59,7 @@ const _DEFAULT_CONFIGURATION_List_RecordListEntry = (
|
|
|
59
59
|
{
|
|
60
60
|
Hash: 'PRSP-Dashboard-RecordListEntry-Template-Row-Cell',
|
|
61
61
|
Template: /*html*/`
|
|
62
|
-
<td style="border-bottom: 1px solid #ccc; padding: 5px;">
|
|
62
|
+
<td style="border-bottom: 1px solid var(--theme-color-border-default, #ccc); padding: 5px;">
|
|
63
63
|
{~TBDA:Record.Data.PictDashboard.ValueTemplate~}
|
|
64
64
|
</td>
|
|
65
65
|
`
|
|
@@ -74,7 +74,7 @@ const _DEFAULT_CONFIGURATION_List_RecordListEntry = (
|
|
|
74
74
|
Hash: 'PRSP-Dashboard-RecordListAction-Template-Cell',
|
|
75
75
|
// FIXME: Needs a better way of getting the appropriate link templates in (likely requiring piping the RecordSet to the link manager)
|
|
76
76
|
Template: /*html*/`
|
|
77
|
-
<td style="border-bottom: 1px solid #ccc; padding: 5px;">
|
|
77
|
+
<td style="border-bottom: 1px solid var(--theme-color-border-default, #ccc); padding: 5px;">
|
|
78
78
|
<ul>
|
|
79
79
|
{~TSWP:PRSP-Dashboard-RecordListAction-Template-Cell-Datum:Pict.providers.RecordSetLinkManager.linkTemplates:Record~}
|
|
80
80
|
</ul>
|
|
@@ -55,7 +55,7 @@ const _DEFAULT_CONFIGURATION_List_RecordListHeader = (
|
|
|
55
55
|
Hash: 'PRSP-Dashboard-RecordListHeader-Template-Header',
|
|
56
56
|
Template: /*html*/`
|
|
57
57
|
<!-- DefaultPackage pict view template: [PRSP-Dashboard-RecordListHeader-Template-Header] -->
|
|
58
|
-
<th style="border-bottom: 1px solid #ccc; padding: 5px; background-color: #f2f2f2; color: #333;">
|
|
58
|
+
<th style="border-bottom: 1px solid var(--theme-color-border-default, #ccc); padding: 5px; background-color: var(--theme-color-background-tertiary, #f2f2f2); color: var(--theme-color-text-primary, #333);">
|
|
59
59
|
{~D:Record.DisplayName~}
|
|
60
60
|
</th>
|
|
61
61
|
<!-- DefaultPackage end view template: [PRSP-Dashboard-RecordListHeader-Template-Header] -->
|
|
@@ -75,7 +75,7 @@ const _DEFAULT_CONFIGURATION_List_RecordListHeader = (
|
|
|
75
75
|
Hash: 'PRSP-Dashboard-RecordListActions-Template-Header',
|
|
76
76
|
Template: /*html*/`
|
|
77
77
|
<!-- DefaultPackage pict view template: [PRSP-Dashboard-RecordListActions-Template-Header] -->
|
|
78
|
-
<th style="border-bottom: 1px solid #ccc; padding: 5px; background-color: #f2f2f2; color: #333;">
|
|
78
|
+
<th style="border-bottom: 1px solid var(--theme-color-border-default, #ccc); padding: 5px; background-color: var(--theme-color-background-tertiary, #f2f2f2); color: var(--theme-color-text-primary, #333);">
|
|
79
79
|
Actions
|
|
80
80
|
</th>
|
|
81
81
|
<!-- DefaultPackage end view template: [PRSP-Dashboard-RecordListActions-Template-Header] -->
|
|
@@ -61,7 +61,7 @@ const _DEFAULT_CONFIGURATION_List_RecordListEntry = (
|
|
|
61
61
|
{
|
|
62
62
|
Hash: 'PRSP-List-RecordListEntry-Template-Row-Cell',
|
|
63
63
|
Template: /*html*/`
|
|
64
|
-
<td style="border-bottom: 1px solid #ccc; padding: 5px;">
|
|
64
|
+
<td style="border-bottom: 1px solid var(--theme-color-border-default, #ccc); padding: 5px;">
|
|
65
65
|
{~TBDA:Record.Data.PictDashboard.ValueTemplate~}
|
|
66
66
|
</td>
|
|
67
67
|
`
|
|
@@ -76,7 +76,7 @@ const _DEFAULT_CONFIGURATION_List_RecordListEntry = (
|
|
|
76
76
|
Hash: 'PRSP-List-RecordListAction-Template-Cell',
|
|
77
77
|
// FIXME: Needs a better way of getting the appropriate link templates in (likely requiring piping the RecordSet to the link manager)
|
|
78
78
|
Template: /*html*/`
|
|
79
|
-
<td style="border-bottom: 1px solid #ccc; padding: 5px;">
|
|
79
|
+
<td style="border-bottom: 1px solid var(--theme-color-border-default, #ccc); padding: 5px;">
|
|
80
80
|
<ul>
|
|
81
81
|
{~TSWP:PRSP-List-RecordListAction-Template-Cell-Datum:Pict.providers.RecordSetLinkManager.linkTemplates:Record~}
|
|
82
82
|
</ul>
|
|
@@ -43,7 +43,7 @@ const _DEFAULT_CONFIGURATION_List_RecordListHeader = (
|
|
|
43
43
|
Hash: 'PRSP-List-RecordListHeader-Template-Header',
|
|
44
44
|
Template: /*html*/`
|
|
45
45
|
<!-- DefaultPackage pict view template: [PRSP-List-RecordListHeader-Template-Header] -->
|
|
46
|
-
<th style="border-bottom: 1px solid #ccc; padding: 5px; background-color: #f2f2f2; color: #333;">
|
|
46
|
+
<th style="border-bottom: 1px solid var(--theme-color-border-default, #ccc); padding: 5px; background-color: var(--theme-color-background-tertiary, #f2f2f2); color: var(--theme-color-text-primary, #333);">
|
|
47
47
|
{~D:Record.DisplayName~}
|
|
48
48
|
</th>
|
|
49
49
|
<!-- DefaultPackage end view template: [PRSP-List-RecordListHeader-Template-Header] -->
|
|
@@ -63,7 +63,7 @@ const _DEFAULT_CONFIGURATION_List_RecordListHeader = (
|
|
|
63
63
|
Hash: 'PRSP-List-RecordListActions-Template-Header',
|
|
64
64
|
Template: /*html*/`
|
|
65
65
|
<!-- DefaultPackage pict view template: [PRSP-List-RecordListActions-Template-Header] -->
|
|
66
|
-
<th style="border-bottom: 1px solid #ccc; padding: 5px; background-color: #f2f2f2; color: #333;">
|
|
66
|
+
<th style="border-bottom: 1px solid var(--theme-color-border-default, #ccc); padding: 5px; background-color: var(--theme-color-background-tertiary, #f2f2f2); color: var(--theme-color-text-primary, #333);">
|
|
67
67
|
Actions
|
|
68
68
|
</th>
|
|
69
69
|
<!-- DefaultPackage end view template: [PRSP-List-RecordListActions-Template-Header] -->
|
|
@@ -118,5 +118,88 @@ suite
|
|
|
118
118
|
}
|
|
119
119
|
);
|
|
120
120
|
});
|
|
121
|
+
suite
|
|
122
|
+
(
|
|
123
|
+
'MetaController addManifest',
|
|
124
|
+
() =>
|
|
125
|
+
{
|
|
126
|
+
test(
|
|
127
|
+
'should register a manifest at runtime',
|
|
128
|
+
(fDone) =>
|
|
129
|
+
{
|
|
130
|
+
let _Pict = new libPict();
|
|
131
|
+
_Pict.LogNoisiness = 0;
|
|
132
|
+
localStorage = originalLocalStorage;
|
|
133
|
+
|
|
134
|
+
let _Application = new DoNothingApplication(_Pict, {});
|
|
135
|
+
_Application.testDone = () =>
|
|
136
|
+
{
|
|
137
|
+
let _MetaController = _Pict.services.PictSectionRecordSet;
|
|
138
|
+
|
|
139
|
+
Expect(_MetaController).to.be.an('object', 'MetaController should exist.');
|
|
140
|
+
Expect(_MetaController.addManifest).to.be.a('function', 'addManifest should be a function.');
|
|
141
|
+
|
|
142
|
+
// Before adding, manifest should not exist
|
|
143
|
+
Expect(_MetaController.getManifest('TestDashboard')).to.equal(undefined);
|
|
144
|
+
|
|
145
|
+
// Add a manifest
|
|
146
|
+
_MetaController.addManifest({
|
|
147
|
+
Scope: 'TestDashboard',
|
|
148
|
+
CoreEntity: 'PhysicalAsset',
|
|
149
|
+
TitleTemplate: 'Test Dashboard',
|
|
150
|
+
Descriptors:
|
|
151
|
+
{
|
|
152
|
+
'Name':
|
|
153
|
+
{
|
|
154
|
+
'Name': 'Name',
|
|
155
|
+
'Hash': 'Name',
|
|
156
|
+
'PictDashboard': {}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// After adding, manifest should be retrievable
|
|
162
|
+
let tmpManifest = _MetaController.getManifest('TestDashboard');
|
|
163
|
+
Expect(tmpManifest).to.be.an('object', 'Manifest should be retrievable after addManifest.');
|
|
164
|
+
|
|
165
|
+
// The manifest definition should also be registered
|
|
166
|
+
Expect(_MetaController.manifestDefinitions['TestDashboard']).to.be.an('object');
|
|
167
|
+
Expect(_MetaController.manifestDefinitions['TestDashboard'].Scope).to.equal('TestDashboard');
|
|
168
|
+
Expect(_MetaController.manifestDefinitions['TestDashboard'].TitleTemplate).to.equal('Test Dashboard');
|
|
169
|
+
|
|
170
|
+
fDone();
|
|
171
|
+
};
|
|
172
|
+
_Application.initialize();
|
|
173
|
+
}
|
|
174
|
+
);
|
|
175
|
+
|
|
176
|
+
test(
|
|
177
|
+
'should reject invalid manifests',
|
|
178
|
+
(fDone) =>
|
|
179
|
+
{
|
|
180
|
+
let _Pict = new libPict();
|
|
181
|
+
_Pict.LogNoisiness = 0;
|
|
182
|
+
localStorage = originalLocalStorage;
|
|
183
|
+
|
|
184
|
+
let _Application = new DoNothingApplication(_Pict, {});
|
|
185
|
+
_Application.testDone = () =>
|
|
186
|
+
{
|
|
187
|
+
let _MetaController = _Pict.services.PictSectionRecordSet;
|
|
188
|
+
|
|
189
|
+
// Should not throw on invalid input
|
|
190
|
+
_MetaController.addManifest(null);
|
|
191
|
+
_MetaController.addManifest({});
|
|
192
|
+
_MetaController.addManifest({ Scope: 'NoDescriptors' });
|
|
193
|
+
|
|
194
|
+
// None of these should have been registered
|
|
195
|
+
Expect(_MetaController.getManifest('NoDescriptors')).to.equal(undefined);
|
|
196
|
+
|
|
197
|
+
fDone();
|
|
198
|
+
};
|
|
199
|
+
_Application.initialize();
|
|
200
|
+
}
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
);
|
|
121
204
|
}
|
|
122
205
|
);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
declare const _exports: {
|
|
2
2
|
new (pFable: any, pOptions: any, pServiceHash: any): import("./services/RecordsSet-MetaController.js");
|
|
3
3
|
default_configuration: Record<string, any>;
|
|
4
|
+
isFableService: boolean;
|
|
5
|
+
CoreServiceProviderBase: typeof import("fable-serviceproviderbase");
|
|
4
6
|
PictRecordSetApplication: typeof import("./application/Pict-Application-RecordSet.js");
|
|
5
7
|
RecordSetProviderBase: typeof import("./providers/RecordSet-RecordProvider-Base.js");
|
|
6
8
|
RecordSetProviderMeadowEndpoints: typeof import("./providers/RecordSet-RecordProvider-MeadowEndpoints.js");
|
|
@@ -48,6 +48,7 @@ declare class FilterDataProvider extends libPictProvider {
|
|
|
48
48
|
constructor(pFable: import("pict"), pOptions?: Record<string, any>, pServiceHash?: string);
|
|
49
49
|
storageProvider: any;
|
|
50
50
|
keyCache: {};
|
|
51
|
+
filterExperienceModifiedFromURLHash: boolean;
|
|
51
52
|
/** ===== UTILITY for Filter Experience ============= */
|
|
52
53
|
/**
|
|
53
54
|
* Using the information in the FilterClauses, try to generate a contextual default filter name for the display name of the current experience.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filter-Data-Provider.d.ts","sourceRoot":"","sources":["../../source/providers/Filter-Data-Provider.js"],"names":[],"mappings":";AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCE;AAIF;IAEC;;;;OAIG;IACH,oBAJW,OAAO,MAAM,CAAC,aACd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBACnB,MAAM,
|
|
1
|
+
{"version":3,"file":"Filter-Data-Provider.d.ts","sourceRoot":"","sources":["../../source/providers/Filter-Data-Provider.js"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,8 @@ declare class RecordSetDynamicRecordsetSolver extends libPictProvider {
|
|
|
22
22
|
PictSectionRecordSet: InstanceType<{
|
|
23
23
|
new (pFable: any, pOptions: any, pServiceHash: any): import("../services/RecordsSet-MetaController.js");
|
|
24
24
|
default_configuration: Record<string, any>;
|
|
25
|
+
isFableService: boolean;
|
|
26
|
+
CoreServiceProviderBase: typeof import("fable-serviceproviderbase");
|
|
25
27
|
PictRecordSetApplication: typeof import("../application/Pict-Application-RecordSet.js");
|
|
26
28
|
RecordSetProviderBase: typeof import("./RecordSet-RecordProvider-Base.js");
|
|
27
29
|
RecordSetProviderMeadowEndpoints: typeof import("./RecordSet-RecordProvider-MeadowEndpoints.js");
|
|
@@ -66,6 +68,8 @@ declare class RecordSetDynamicRecordsetSolver extends libPictProvider {
|
|
|
66
68
|
PictSectionRecordSet: InstanceType<{
|
|
67
69
|
new (pFable: any, pOptions: any, pServiceHash: any): import("../services/RecordsSet-MetaController.js");
|
|
68
70
|
default_configuration: Record<string, any>;
|
|
71
|
+
isFableService: boolean;
|
|
72
|
+
CoreServiceProviderBase: typeof import("fable-serviceproviderbase");
|
|
69
73
|
PictRecordSetApplication: typeof import("../application/Pict-Application-RecordSet.js");
|
|
70
74
|
RecordSetProviderBase: typeof import("./RecordSet-RecordProvider-Base.js");
|
|
71
75
|
RecordSetProviderMeadowEndpoints: typeof import("./RecordSet-RecordProvider-MeadowEndpoints.js");
|
|
@@ -87,6 +91,8 @@ declare class RecordSetDynamicRecordsetSolver extends libPictProvider {
|
|
|
87
91
|
PictSectionRecordSet: InstanceType<{
|
|
88
92
|
new (pFable: any, pOptions: any, pServiceHash: any): import("../services/RecordsSet-MetaController.js");
|
|
89
93
|
default_configuration: Record<string, any>;
|
|
94
|
+
isFableService: boolean;
|
|
95
|
+
CoreServiceProviderBase: typeof import("fable-serviceproviderbase");
|
|
90
96
|
PictRecordSetApplication: typeof import("../application/Pict-Application-RecordSet.js");
|
|
91
97
|
RecordSetProviderBase: typeof import("./RecordSet-RecordProvider-Base.js");
|
|
92
98
|
RecordSetProviderMeadowEndpoints: typeof import("./RecordSet-RecordProvider-MeadowEndpoints.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordSet-DynamicRecordsetSolver.d.ts","sourceRoot":"","sources":["../../source/providers/RecordSet-DynamicRecordsetSolver.js"],"names":[],"mappings":";AAaA;;GAEG;AACH;IAEC;;;;;;OAMG;IACH,oBAJW,MAAM,YACN,MAAM,gBACN,MAAM,EAwBhB;IAjBA;;;;YAIQ;IACR,MALW,OAAO,MAAM,CAAC,GAAG;QACxB,qCAAqC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;QAC7D,gBAAgB,EAAE,GAAG,CAAC;QACtB,oBAAoB,EAAE,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"RecordSet-DynamicRecordsetSolver.d.ts","sourceRoot":"","sources":["../../source/providers/RecordSet-DynamicRecordsetSolver.js"],"names":[],"mappings":";AAaA;;GAEG;AACH;IAEC;;;;;;OAMG;IACH,oBAJW,MAAM,YACN,MAAM,gBACN,MAAM,EAwBhB;IAjBA;;;;YAIQ;IACR,MALW,OAAO,MAAM,CAAC,GAAG;QACxB,qCAAqC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;QAC7D,gBAAgB,EAAE,GAAG,CAAC;QACtB,oBAAoB,EAAE,YAAY,CAAC;;;;;;;;SAAsC,CAAC,CAAA;KAC1E,CACK;IACT,uHAAuH;IACvH,OADW,OAAO,MAAM,CAAC,GAAG;QAAE,qCAAqC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;QAAC,gBAAgB,EAAE,GAAG,CAAA;KAAE,CACzG;IAYX;;;;;;;;;OASG;IACH,qBALW,MAAM,GAAC,MAAM,cACb,OAAO,aACP,MAAM,GACJ,MAAM,GAAC,SAAS,CA8B5B;IAED;;;;;;;;;OASG;IACH,8BALW,OAAO,UAAU,CAAC,qCAElB,MAAM,YACN,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QAuCpC;IAED;;;;OAIG;IACH,gCAJW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,aAC1B,OAAO,UAAU,CAAC;;mDA9Ge,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG;8BAC1C,GAAG;kCACC,YAAY,CAAC;;;;;;;;aAAsC,CAAC;;;;;;MAiH9E;IAED;;;OAGG;IACH,mCAHW,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,aAC1B,OAAO,UAAU,CAAC;;mDAvHe,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG;8BAC1C,GAAG;kCACC,YAAY,CAAC;;;;;;;;aAAsC,CAAC;;;;;;MAgI9E;IAED;;;;;;;OAOG;IACH,mCALW,OAAO,UAAU,CAAC,uCAElB,MAAM,YACN,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QA+BpC;IAED;;;;;;;;OAQG;IACH,gCAJW,MAAM,yBAWhB;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,oCAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QA4DpC;IADA;;;;MAAuC;CAExC;;;;;AA5SD,kCAAkC;AAClC,6CADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAS3B"}
|
|
@@ -24,6 +24,8 @@ declare class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
|
|
|
24
24
|
PictSectionRecordSet: InstanceType<{
|
|
25
25
|
new (pFable: any, pOptions: any, pServiceHash: any): import("../services/RecordsSet-MetaController.js");
|
|
26
26
|
default_configuration: Record<string, any>;
|
|
27
|
+
isFableService: boolean;
|
|
28
|
+
CoreServiceProviderBase: typeof import("fable-serviceproviderbase");
|
|
27
29
|
PictRecordSetApplication: typeof import("../application/Pict-Application-RecordSet.js");
|
|
28
30
|
RecordSetProviderBase: typeof libRecordSetProviderBase;
|
|
29
31
|
RecordSetProviderMeadowEndpoints: typeof MeadowEndpointsRecordSetProvider;
|
|
@@ -34,6 +36,8 @@ declare class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
|
|
|
34
36
|
PictSectionRecordSet: InstanceType<{
|
|
35
37
|
new (pFable: any, pOptions: any, pServiceHash: any): import("../services/RecordsSet-MetaController.js");
|
|
36
38
|
default_configuration: Record<string, any>;
|
|
39
|
+
isFableService: boolean;
|
|
40
|
+
CoreServiceProviderBase: typeof import("fable-serviceproviderbase");
|
|
37
41
|
PictRecordSetApplication: typeof import("../application/Pict-Application-RecordSet.js");
|
|
38
42
|
RecordSetProviderBase: typeof libRecordSetProviderBase;
|
|
39
43
|
RecordSetProviderMeadowEndpoints: typeof MeadowEndpointsRecordSetProvider;
|
|
@@ -45,6 +49,8 @@ declare class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
|
|
|
45
49
|
PictSectionRecordSet: InstanceType<{
|
|
46
50
|
new (pFable: any, pOptions: any, pServiceHash: any): import("../services/RecordsSet-MetaController.js");
|
|
47
51
|
default_configuration: Record<string, any>;
|
|
52
|
+
isFableService: boolean;
|
|
53
|
+
CoreServiceProviderBase: typeof import("fable-serviceproviderbase");
|
|
48
54
|
PictRecordSetApplication: typeof import("../application/Pict-Application-RecordSet.js");
|
|
49
55
|
RecordSetProviderBase: typeof libRecordSetProviderBase;
|
|
50
56
|
RecordSetProviderMeadowEndpoints: typeof MeadowEndpointsRecordSetProvider;
|
|
@@ -55,6 +61,8 @@ declare class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
|
|
|
55
61
|
PictSectionRecordSet: InstanceType<{
|
|
56
62
|
new (pFable: any, pOptions: any, pServiceHash: any): import("../services/RecordsSet-MetaController.js");
|
|
57
63
|
default_configuration: Record<string, any>;
|
|
64
|
+
isFableService: boolean;
|
|
65
|
+
CoreServiceProviderBase: typeof import("fable-serviceproviderbase");
|
|
58
66
|
PictRecordSetApplication: typeof import("../application/Pict-Application-RecordSet.js");
|
|
59
67
|
RecordSetProviderBase: typeof libRecordSetProviderBase;
|
|
60
68
|
RecordSetProviderMeadowEndpoints: typeof MeadowEndpointsRecordSetProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordSet-RecordProvider-MeadowEndpoints.d.ts","sourceRoot":"","sources":["../../source/providers/RecordSet-RecordProvider-MeadowEndpoints.js"],"names":[],"mappings":";AAGA;;;GAGG;AAEH;;;GAGG;AACH;IAcE;;;;;;;;;aASS;IACT,MAVW,OAAO,MAAM,CAAC,GAAG;QACpB,GAAG,EAAE,GAAG,CAAC;QACT,QAAQ,EACf;YACI,oBAAoB,EAAE,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"RecordSet-RecordProvider-MeadowEndpoints.d.ts","sourceRoot":"","sources":["../../source/providers/RecordSet-RecordProvider-MeadowEndpoints.js"],"names":[],"mappings":";AAGA;;;GAGG;AAEH;;;GAGG;AACH;IAcE;;;;;;;;;aASS;IACT,MAVW,OAAO,MAAM,CAAC,GAAG;QACpB,GAAG,EAAE,GAAG,CAAC;QACT,QAAQ,EACf;YACI,oBAAoB,EAAE,YAAY,CAAC;;;;;;;;aAAsC,CAAC,CAAC;YAC/E,CAAK,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;SACnB,CAAC;QACE,6CAA6C,EAAE,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC;QACrE,oBAAoB,EAAE,YAAY,CAAC;;;;;;;;SAAsC,CAAC,CAAA;KAC7E,CACI;IACT;aAVa,GAAG;kBAEf;YACI,oBAAoB,EAAE,YAAY,CAAC;;;;;;;;aAAsC,CAAC,CAAC;YAC/E,CAAK,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;SACnB;uDACkD,CAAC,IAAI,QAAQ,KAAK,GAAG;8BAC9C,YAAY,CAAC;;;;;;;;SAAsC,CAAC;MAG5D;IAMtB,kCAAkC;IAClC,SADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAClB;IACZ,kDAAkD;IAClD,cADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACvB;IACvB,kDAAkD;IAClD,iBADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACpB;IAG3B,0EAA0E;IAC1E,sBADa,OAAO,iDAAiD,CAAC,CAerE;IAVC,wEAAwE;IAExE,iBAFW,OAAO,iDAAiD,CAAC,CAE4B;IAUlG;;OAEG;IACH,0BAFY,KAAK,CAAC,MAAM,CAAC,CASxB;IAED;;;;OAIG;IACH,qBAFW,MAAM,GAAC,MAAM,gBA4BvB;IAED,oBAaC;IAED,kBAaC;IAED;;;;OAIG;IACH,uBAFW,MAAM,GAAC,MAAM,gBA2BvB;IAED,iGAiBC;IA8FD;;;;OAIG;IACH,4BAFW,eAAe,gBA2CzB;IAED;;;;OAIG;IACH,sBAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,gBAsB7B;IAED;;;;OAIG;IACH,sBAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,gBAsB7B;IAED;;;;OAIG;IACH,sBAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,gBAsB7B;IAED;;;;OAIG;IACH,sBAFW,MAAM,GAAC,MAAM,gBAKvB;IAaD;;;;OAIG;IACH,qBAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,gBAK7B;IAcD;;;;OAIG;IACH,oCAJW,MAAM,WACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,uBACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAsF7B;IAgGD;;;OAGG;IACH,qCAHW,MAAM,GACL,MAAM,CAKjB;IAED;;;OAGG;IACH,wCAHW,MAAM,GACL,MAAM,CAyCjB;IAED;;OAEG;IACH,kCAFW,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,QA6BjC;IAED,+BA8HC;CA0DD;;;;;uBA74BY,OAAO,oCAAoC,EAAE,eAAe;uBAC5D,OAAO,oCAAoC,EAAE,eAAe"}
|
|
@@ -6,6 +6,8 @@ declare class PictRecordSetRouter extends libPictProvider {
|
|
|
6
6
|
PictSectionRecordSet: InstanceType<{
|
|
7
7
|
new (pFable: any, pOptions: any, pServiceHash: any): import("../services/RecordsSet-MetaController.js");
|
|
8
8
|
default_configuration: Record<string, any>;
|
|
9
|
+
isFableService: boolean;
|
|
10
|
+
CoreServiceProviderBase: typeof import("fable-serviceproviderbase");
|
|
9
11
|
PictRecordSetApplication: typeof import("../application/Pict-Application-RecordSet.js");
|
|
10
12
|
RecordSetProviderBase: typeof import("./RecordSet-RecordProvider-Base.js");
|
|
11
13
|
RecordSetProviderMeadowEndpoints: typeof import("./RecordSet-RecordProvider-MeadowEndpoints.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordSet-Router.d.ts","sourceRoot":"","sources":["../../source/providers/RecordSet-Router.js"],"names":[],"mappings":";AAYA;IAEC,2DAWC;IAJA,8GAA8G;IAC9G,MADW,OAAO,MAAM,CAAC,GAAG;QAAE,oBAAoB,EAAE,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"RecordSet-Router.d.ts","sourceRoot":"","sources":["../../source/providers/RecordSet-Router.js"],"names":[],"mappings":";AAYA;IAEC,2DAWC;IAJA,8GAA8G;IAC9G,MADW,OAAO,MAAM,CAAC,GAAG;QAAE,oBAAoB,EAAE,YAAY,CAAC;;;;;;;;SAAsC,CAAC,CAAA;KAAE,CACjG;IAET,gBAAsB;IAgBvB,8BAYC;IAED;;;;OAIG;IACH,iBAFW,MAAM,QAKhB;CACD;;;;;AA5DD,kCAAkC;AAClC,+CADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAO7B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export = RecordSetMetacontroller;
|
|
2
|
-
declare class RecordSetMetacontroller {
|
|
2
|
+
declare class RecordSetMetacontroller extends libFableServiceProviderBase {
|
|
3
3
|
constructor(pFable: any, pOptions: any, pServiceHash: any);
|
|
4
4
|
/** @type {import('pict') & { PictSectionRecordSet: any, addAndInstantiateSingletonService: (hash: string, options: any, prototype: any) => any, newManyfest: (rec: any) => any }} */
|
|
5
5
|
fable: import("pict") & {
|
|
@@ -13,11 +13,7 @@ declare class RecordSetMetacontroller {
|
|
|
13
13
|
newManyfest: (rec: any) => any;
|
|
14
14
|
};
|
|
15
15
|
/** @type {any} */
|
|
16
|
-
log: any;
|
|
17
|
-
/** @type {any} */
|
|
18
16
|
options: any;
|
|
19
|
-
/** @type {string} */
|
|
20
|
-
UUID: string;
|
|
21
17
|
childViews: {
|
|
22
18
|
list: any;
|
|
23
19
|
create: any;
|
|
@@ -79,6 +75,14 @@ declare class RecordSetMetacontroller {
|
|
|
79
75
|
addRecordLinkTemplate(pNameTemplate: string, pURLTemplate: string, pDefault: boolean): Record<string, any>;
|
|
80
76
|
initialize(): true | this;
|
|
81
77
|
getManifest(pScope: any): import("manyfest");
|
|
78
|
+
/**
|
|
79
|
+
* Register a manifest at runtime, after initialization. This is the
|
|
80
|
+
* equivalent of adding a manifest to `fable.settings.Manifests` before
|
|
81
|
+
* init, but callable after the fact.
|
|
82
|
+
*
|
|
83
|
+
* @param {Record<string, any>} pManifest - The manifest to register. Must have `Scope` and `Descriptors`.
|
|
84
|
+
*/
|
|
85
|
+
addManifest(pManifest: Record<string, any>): void;
|
|
82
86
|
/**
|
|
83
87
|
* @param {Record<string, any>} pManifest - The manifest to generate table cells for.
|
|
84
88
|
*/
|
|
@@ -87,6 +91,7 @@ declare class RecordSetMetacontroller {
|
|
|
87
91
|
declare namespace RecordSetMetacontroller {
|
|
88
92
|
export { _DEFAULT_CONFIGURATION as default_configuration };
|
|
89
93
|
}
|
|
94
|
+
import libFableServiceProviderBase = require("fable-serviceproviderbase");
|
|
90
95
|
/** @type {Record<string, any>} */
|
|
91
96
|
declare const _DEFAULT_CONFIGURATION: Record<string, any>;
|
|
92
97
|
//# sourceMappingURL=RecordsSet-MetaController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordsSet-MetaController.d.ts","sourceRoot":"","sources":["../../source/services/RecordsSet-MetaController.js"],"names":[],"mappings":";AAwBA;IAEC,2DA2GC;IAtGA,qLAAqL;IACrL,OADW,OAAO,MAAM,CAAC,GAAG;QAAE,oBAAoB,EAAE,GAAG,CAAC;QAAC,iCAAiC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC;QAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAA;KAAE,CACvK;IACV;8BAFoD,GAAG;2CAAqC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG;qBAAe,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG;MAEzJ;
|
|
1
|
+
{"version":3,"file":"RecordsSet-MetaController.d.ts","sourceRoot":"","sources":["../../source/services/RecordsSet-MetaController.js"],"names":[],"mappings":";AAwBA;IAEC,2DA2GC;IAtGA,qLAAqL;IACrL,OADW,OAAO,MAAM,CAAC,GAAG;QAAE,oBAAoB,EAAE,GAAG,CAAC;QAAC,iCAAiC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC;QAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAA;KAAE,CACvK;IACV;8BAFoD,GAAG;2CAAqC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG;qBAAe,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG;MAEzJ;IAGtB,kBAAkB;IAClB,SADW,GAAG,CACF;IAIZ;;;;;MAKC;IAED,sDAAsD;IACtD,oBADW,MAAM,CAAC,MAAM,EAAE,OAAO,eAAe,CAAC,CAAC,CACtB;IAC5B,kDAAkD;IAClD,iCADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACL;IAEzC,kDAAkD;IAClD,yBADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACb;IAEjC,+DAA+D;IAC/D,kBADW,KAAK,CAAC,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CACjC;IAE1B,kDAAkD;IAClD,qBADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACjB;IAC7B,iDAAiD;IACjD,WADW,MAAM,CAAC,MAAM,EAAE,OAAO,UAAU,CAAC,CAAC,CACG;IAEhD,yBAA4B;IAkG7B;;;;OAIG;IACH,sCAJW,MAAM,GAEL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAK9B;IAED;;OAEG;IACH,oDAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,WAiH7B;IAED;;OAEG;IACH,8DAFW,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAqBpC;IAED;;;;OAIG;IACH,qCAJW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,YAC5B,MAAM,mBACN,MAAM,OAqDhB;IAED;;OAEG;IACH,+CAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAe7B;IAED;;OAEG;IACH,qCAMC;IAED;;OAEG;IACH,0BAFW,MAAM,oBAYhB;IAED;;;;;;OAMG;IACH,qCANW,MAAM,gBACN,MAAM,YACN,OAAO,GAEN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAK9B;IAED,0BAsFC;IAED,6CAGC;IAED;;;;;;OAMG;IACH,uBAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAe7B;IAED;;OAEG;IACH,sCAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAwC7B;CAED;;;;;AAxjBD,kCAAkC;AAClC,sCADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAI3B"}
|
|
@@ -3,6 +3,48 @@ export = PictTemplateFilterInstanceViewInstruction;
|
|
|
3
3
|
* Specialized instruction for rendering the filter view and plumbing in required context.
|
|
4
4
|
*
|
|
5
5
|
* Based on the Pict base {~V:...~} template instruction.
|
|
6
|
+
*
|
|
7
|
+
* ## Async render architecture (see renderAsync below)
|
|
8
|
+
*
|
|
9
|
+
* The async path is tuned to get the dashboard records list painted before any
|
|
10
|
+
* speculative filter-list REST lookups complete. Three things collaborate to
|
|
11
|
+
* make that happen:
|
|
12
|
+
*
|
|
13
|
+
* 1. **Parallel filter fan-out.** Every filter clause starts its own
|
|
14
|
+
* `renderWithScopeAsync` in a single pass, instead of chaining through a
|
|
15
|
+
* sequential `Anticipate` queue. Template parsing, `onBefore*`/`onProject*`
|
|
16
|
+
* microtask hops, and the synchronous DOM walks done inside each filter's
|
|
17
|
+
* `onAfterRender` all happen concurrently rather than serialized across N
|
|
18
|
+
* filters. Results are collected into an indexed array so final output
|
|
19
|
+
* order still matches the clause order.
|
|
20
|
+
*
|
|
21
|
+
* 2. **Per-filter transaction isolation.** Each filter render gets its own
|
|
22
|
+
* synthetic `RootRenderable` carrying a fresh `TransactionHash`. Any
|
|
23
|
+
* `virtual-assignment` sub-renders that the filter's dynamic form spawns
|
|
24
|
+
* (notably `PSRSFilterProxyView`, which pict-section-form uses to host
|
|
25
|
+
* each filter's input) push into THIS transaction's queue, not the
|
|
26
|
+
* dashboard's. The dashboard's outer `renderAsync` callback fires as soon
|
|
27
|
+
* as every filter has its template string - without waiting on any of
|
|
28
|
+
* the nested input-initialize work.
|
|
29
|
+
*
|
|
30
|
+
* 3. **Deferred post-render drain.** The filter's post-render pipeline
|
|
31
|
+
* (`onAfterRenderAsync`, which is what runs pict-section-form's
|
|
32
|
+
* `runInputProviderFunctions('onInputInitialize', ...)` and therefore
|
|
33
|
+
* triggers `EntityBundleRequest.gatherDataFromServer` for any
|
|
34
|
+
* speculative-load inputs) is intentionally NOT run inline. It is queued
|
|
35
|
+
* via `setTimeout(..., 0)` so it fires on the next macrotask, giving the
|
|
36
|
+
* browser a tick to paint the dashboard first.
|
|
37
|
+
*
|
|
38
|
+
* ### Render-epoch race guard
|
|
39
|
+
*
|
|
40
|
+
* Between the dashboard callback firing and the setTimeout actually running,
|
|
41
|
+
* the user may have navigated away / applied a different filter experience /
|
|
42
|
+
* cleared filters. The `PRSP-Filters` view owns a monotonic `_renderEpoch`
|
|
43
|
+
* counter that gets bumped on every mutating action (`performSearch`,
|
|
44
|
+
* `handleClear`, `handleReset`, `addFilter`, `removeFilter`). Each scheduled
|
|
45
|
+
* drain captures the epoch at schedule time and bails out if a newer render
|
|
46
|
+
* has invalidated it, so a stale REST response can never clobber a filter
|
|
47
|
+
* container that now belongs to a different experience.
|
|
6
48
|
*/
|
|
7
49
|
declare class PictTemplateFilterInstanceViewInstruction extends libPictTemplate {
|
|
8
50
|
/**
|
|
@@ -11,8 +53,6 @@ declare class PictTemplateFilterInstanceViewInstruction extends libPictTemplate
|
|
|
11
53
|
* @param {String} pServiceHash - The hash of the service
|
|
12
54
|
*/
|
|
13
55
|
constructor(pFable: any, pOptions: any, pServiceHash: string);
|
|
14
|
-
/** @type {any} */
|
|
15
|
-
log: any;
|
|
16
56
|
_getViewForFilterClause(pClause: any): import("../views/filters/RecordSet-Filter-Base.js");
|
|
17
57
|
}
|
|
18
58
|
import libPictTemplate = require("pict-template");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pict-Template-FilterInstanceViews.d.ts","sourceRoot":"","sources":["../../source/templates/Pict-Template-FilterInstanceViews.js"],"names":[],"mappings":";AAGA
|
|
1
|
+
{"version":3,"file":"Pict-Template-FilterInstanceViews.d.ts","sourceRoot":"","sources":["../../source/templates/Pict-Template-FilterInstanceViews.js"],"names":[],"mappings":";AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH;IAEC;;;;OAIG;IACH,8DAeC;IAED,2FAsBC;CAuPD"}
|
|
@@ -11,8 +11,6 @@ declare class PictTemplateFilterViewInstruction extends libPictTemplate {
|
|
|
11
11
|
* @param {String} pServiceHash - The hash of the service
|
|
12
12
|
*/
|
|
13
13
|
constructor(pFable: any, pOptions: any, pServiceHash: string);
|
|
14
|
-
/** @type {any} */
|
|
15
|
-
log: any;
|
|
16
14
|
}
|
|
17
15
|
import libPictTemplate = require("pict-template");
|
|
18
16
|
//# sourceMappingURL=Pict-Template-FilterView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pict-Template-FilterView.d.ts","sourceRoot":"","sources":["../../source/templates/Pict-Template-FilterView.js"],"names":[],"mappings":";AAEA;;;;GAIG;AACH;IAEC;;;;OAIG;IACH,8DAeC;
|
|
1
|
+
{"version":3,"file":"Pict-Template-FilterView.d.ts","sourceRoot":"","sources":["../../source/templates/Pict-Template-FilterView.js"],"names":[],"mappings":";AAEA;;;;GAIG;AACH;IAEC;;;;OAIG;IACH,8DAeC;CAgJD"}
|