pict-section-recordset 1.3.1 → 1.5.0
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 +1 -1
- package/source/views/Filter-PersistenceView.js +4 -0
- package/source/views/RecordSet-Filters.js +44 -3
- package/source/views/filters/RecordSet-Filter-EntityReference-Base.js +304 -0
- package/source/views/filters/RecordSet-Filter-ExternalJoinSelectedValue.js +10 -256
- package/source/views/filters/RecordSet-Filter-ExternalJoinSelectedValueList.js +10 -263
- package/source/views/filters/RecordSet-Filter-InternalJoinSelectedValue.js +10 -256
- package/source/views/filters/RecordSet-Filter-InternalJoinSelectedValueList.js +10 -263
- package/types/views/Filter-PersistenceView.d.ts.map +1 -1
- package/types/views/RecordSet-Filters.d.ts +8 -0
- package/types/views/RecordSet-Filters.d.ts.map +1 -1
- package/types/views/filters/RecordSet-Filter-EntityReference-Base.d.ts +37 -0
- package/types/views/filters/RecordSet-Filter-EntityReference-Base.d.ts.map +1 -0
- package/types/views/filters/RecordSet-Filter-ExternalJoinSelectedValue.d.ts +13 -18
- package/types/views/filters/RecordSet-Filter-ExternalJoinSelectedValue.d.ts.map +1 -1
- package/types/views/filters/RecordSet-Filter-ExternalJoinSelectedValueList.d.ts +13 -18
- package/types/views/filters/RecordSet-Filter-ExternalJoinSelectedValueList.d.ts.map +1 -1
- package/types/views/filters/RecordSet-Filter-InternalJoinSelectedValue.d.ts +13 -18
- package/types/views/filters/RecordSet-Filter-InternalJoinSelectedValue.d.ts.map +1 -1
- package/types/views/filters/RecordSet-Filter-InternalJoinSelectedValueList.d.ts +13 -18
- package/types/views/filters/RecordSet-Filter-InternalJoinSelectedValueList.d.ts.map +1 -1
|
@@ -1,278 +1,25 @@
|
|
|
1
|
+
const ViewRecordSetSUBSETFilterEntityReferenceBase = require('./RecordSet-Filter-EntityReference-Base');
|
|
1
2
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
3
|
+
// Internal-join, multi-select entity-reference filter. All behavior lives in the shared base; this
|
|
4
|
+
// only names the view type and points the entity seam at RemoteTable.
|
|
5
|
+
const _DEFAULT_CONFIGURATION =
|
|
5
6
|
{
|
|
6
7
|
ViewIdentifier: 'PRSP-FilterType-InternalJoinSelectedValueList',
|
|
7
|
-
|
|
8
|
-
Templates:
|
|
9
|
-
[
|
|
10
|
-
{
|
|
11
|
-
Hash: 'PRSP-Filter-InternalJoin-SelectedValueList-Template',
|
|
12
|
-
Template: /*html*/`
|
|
13
|
-
<!-- DefaultPackage pict view template: [PRSP-Filter-InternalJoin-SelectedValueList-Template] -->
|
|
14
|
-
<table>
|
|
15
|
-
<tbody>
|
|
16
|
-
<td valign="top">{~T:PRSP-Filter-InternalJoin-SelectedValueList-SearchResults~}</td><td valign="top">{~T:PRSP-Filter-InternalJoin-SelectedValueList-SelectedValues~}</td>
|
|
17
|
-
</tbody>
|
|
18
|
-
</table>
|
|
19
|
-
<!-- DefaultPackage end view template: [PRSP-Filter-InternalJoin-SelectedValueList-Template] -->
|
|
20
|
-
`
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
Hash: 'PRSP-Filter-InternalJoin-SelectedValueList-SearchResults',
|
|
24
|
-
Template: /*html*/`
|
|
25
|
-
<!-- DefaultPackage pict view template: [PRSP-Filter-InternalJoin-SearchResults] -->
|
|
26
|
-
<form id="PRSP_Filter_{~D:Record.Hash~}_Search_Form" onsubmit="_Pict.views['{~D:Context[0].Hash~}'].performSearch(event, '{~D:Record.ClauseAddress~}', '{~D:Record.Hash~}'); return false;">
|
|
27
|
-
<input id="PRSP_Filter_{~D:Record.Hash~}_Search_Value" type="text" placeholder="Search..." value="{~D:Record.SearchInputValue~}" />
|
|
28
|
-
<button type="submit" id="PRSP_Filter_{~D:Record.Hash~}_Button_Search" onclick="_Pict.views['{~D:Context[0].Hash~}'].performSearch(event, '{~D:Record.ClauseAddress~}', '{~D:Record.Hash~}')">Search</button>
|
|
29
|
-
</form>
|
|
30
|
-
<table>
|
|
31
|
-
<thead>
|
|
32
|
-
<tr><th colspan="2">{~D:Record.Label~}</th></tr>
|
|
33
|
-
</thead>
|
|
34
|
-
<tbody>
|
|
35
|
-
{~TSWP:PRSP-Filter-InternalJoin-SelectedValueList-SearchResults-Entry:Record.SearchResults:Record~}
|
|
36
|
-
</tbody>
|
|
37
|
-
</table>
|
|
38
|
-
<button type="button" id="PRSP_Filter_{~D:Record.Hash~}_Button_LoadMore" class="is-hidden" onclick="_Pict.views['{~D:Context[0].Hash~}'].loadMore(event, '{~D:Record.ClauseAddress~}', '{~D:Record.Hash~}', {~D:Record.SearchResultsOffset:0~})">Load More</button>
|
|
39
|
-
<!-- DefaultPackage end view template: [PRSP-Filter-InternalJoin-SearchResults] -->
|
|
40
|
-
`
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
Hash: 'PRSP-Filter-InternalJoin-SelectedValueList-SelectedValues',
|
|
44
|
-
Template: /*html*/`
|
|
45
|
-
<!-- DefaultPackage view template: [PRSP-Filter-InternalJoin-SelectedValueList-SelectedValues] -->
|
|
46
|
-
<table>
|
|
47
|
-
<thead>
|
|
48
|
-
<tr><th colspan="2">Selection</th></tr>
|
|
49
|
-
</thead>
|
|
50
|
-
<tbody>
|
|
51
|
-
{~TSWP:PRSP-Filter-InternalJoin-SelectedValueList-SelectedValues-Entry:Record.SelectedValues:Record~}
|
|
52
|
-
</tbody>
|
|
53
|
-
</table>
|
|
54
|
-
<!-- DefaultPackage end view template: [PRSP-Filter-InternalJoin-SelectedValueList-SelectedValues] -->
|
|
55
|
-
`
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
Hash: 'PRSP-Filter-InternalJoin-SelectedValueList-SearchResults-Entry',
|
|
59
|
-
Template: /*html*/`
|
|
60
|
-
<!-- DefaultPackage pict view template: [PRSP-Filter-InternalJoin-SelectedValueList-Template] -->
|
|
61
|
-
<tr><td><button onclick="_Pict.views['{~D:Context[0].Hash~}'].handleAdd(event, {~DVBK:Record.Data:Record.Payload.ExternalFilterTableLookupColumn~}, '{~D:Record.Payload.ClauseAddress~}', '{~D:Record.Payload.Hash~}')">Add</button></td><td>{~TFA:Record.Payload.ExternalRecordDisplayTemplate:Record~}</td></tr>
|
|
62
|
-
<!-- DefaultPackage end view template: [PRSP-Filter-InternalJoin-SelectedValueList-Template] -->
|
|
63
|
-
`
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
Hash: 'PRSP-Filter-InternalJoin-SelectedValueList-SelectedValues-Entry',
|
|
67
|
-
Template: /*html*/`
|
|
68
|
-
<!-- DefaultPackage pict view template: [PRSP-Filter-InternalJoin-SelectedValueList-SelectedValues-Entry] -->
|
|
69
|
-
<tr><td><button onclick="_Pict.views['{~D:Context[0].Hash~}'].handleRemove(event, {~DVBK:Record.Data:Record.Payload.ExternalFilterTableLookupColumn~}, '{~D:Record.Payload.ClauseAddress~}', '{~D:Record.Payload.Hash~}')">Remove</button></td><td>{~TFA:Record.Payload.ExternalRecordDisplayTemplate:Record~}</td></tr>
|
|
70
|
-
<!-- DefaultPackage end view template: [PRSP-Filter-InternalJoin-SelectedValueList-SelectedValues-Entry] -->
|
|
71
|
-
`
|
|
72
|
-
}
|
|
73
|
-
],
|
|
74
8
|
};
|
|
75
9
|
|
|
76
|
-
class ViewRecordSetSUBSETFilterInternalJoinSelectedValueList extends
|
|
10
|
+
class ViewRecordSetSUBSETFilterInternalJoinSelectedValueList extends ViewRecordSetSUBSETFilterEntityReferenceBase
|
|
77
11
|
{
|
|
78
|
-
|
|
79
|
-
{
|
|
80
|
-
if (!pOptions.PageSize)
|
|
81
|
-
{
|
|
82
|
-
pOptions.PageSize = 15; // default page size for search results
|
|
83
|
-
}
|
|
84
|
-
super(pFable, pOptions, pServiceHash);
|
|
85
|
-
/*
|
|
86
|
-
* show / hide the complex editor since it'll be large ?
|
|
87
|
-
* selected record lookup values
|
|
88
|
-
* using bundle to load those records (if any)
|
|
89
|
-
* templating out the selection
|
|
90
|
-
* templating out the search results
|
|
91
|
-
* controls to add search result values to selection
|
|
92
|
-
*/
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* @param {Record<string, any>} pRecord
|
|
97
|
-
*/
|
|
98
|
-
prepareRecord(pRecord)
|
|
99
|
-
{
|
|
100
|
-
super.prepareRecord(pRecord);
|
|
101
|
-
|
|
102
|
-
pRecord.ClauseDescriptor.DataType = pRecord.DataType || 'Number';
|
|
103
|
-
pRecord.ClauseDescriptor.PictForm = pRecord.PictForm || {};
|
|
104
|
-
if (!pRecord.ExternalFilterTableLookupColumn)
|
|
105
|
-
{
|
|
106
|
-
pRecord.ExternalFilterTableLookupColumn = `ID${pRecord.RemoteTable}`;
|
|
107
|
-
}
|
|
108
|
-
if (!pRecord.SearchResults)
|
|
109
|
-
{
|
|
110
|
-
pRecord.SearchResults = [];
|
|
111
|
-
}
|
|
112
|
-
if (!pRecord.SelectedValues)
|
|
113
|
-
{
|
|
114
|
-
pRecord.SelectedValues = [];
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
getFilterFormTemplate()
|
|
119
|
-
{
|
|
120
|
-
return 'PRSP-Filter-InternalJoin-SelectedValueList-Template';
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* @param {UIEvent} pEvent
|
|
125
|
-
* @param {string} pClauseInformaryAddress
|
|
126
|
-
* @param {string} pClauseHash
|
|
127
|
-
*/
|
|
128
|
-
loadMore(pEvent, pClauseInformaryAddress, pClauseHash, pCurrentOffset = 0)
|
|
129
|
-
{
|
|
130
|
-
this.performSearch(pEvent, pClauseInformaryAddress, pClauseHash, pCurrentOffset + this.options.PageSize);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* @param {UIEvent} pEvent
|
|
135
|
-
* @param {string} pClauseInformaryAddress
|
|
136
|
-
* @param {string} pClauseHash
|
|
137
|
-
* @param {number} [pOffset=0] - The offset for the search results, defaults to 0
|
|
138
|
-
*/
|
|
139
|
-
performSearch(pEvent, pClauseInformaryAddress, pClauseHash, pOffset = 0)
|
|
140
|
-
{
|
|
141
|
-
pEvent.preventDefault();
|
|
142
|
-
const tmpClause = this.getInformaryScopedValue(pClauseInformaryAddress);
|
|
143
|
-
if (!tmpClause)
|
|
144
|
-
{
|
|
145
|
-
this.pict.log.error(`[Filter-InternalJoinSelectedValueList] No clause found for address: ${pClauseInformaryAddress}`);
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
tmpClause.SearchResultsOffset = pOffset;
|
|
149
|
-
// get the input value (search box)
|
|
150
|
-
const tmpSearchInputValue = pOffset > 0 ? tmpClause.SearchInputValue : this.pict.ContentAssignment.readContent(`#PRSP_Filter_${tmpClause.Hash}_Search_Value`);
|
|
151
|
-
tmpClause.SearchInputValue = tmpSearchInputValue;
|
|
152
|
-
if (!tmpSearchInputValue)
|
|
153
|
-
{
|
|
154
|
-
tmpClause.SearchResults = [];
|
|
155
|
-
tmpClause.LoadMoreEnabled = false;
|
|
156
|
-
const tmpRecord = Object.assign({ ClauseAddress: pClauseInformaryAddress }, tmpClause);
|
|
157
|
-
this.prepareRecord(tmpRecord);
|
|
158
|
-
const tmpDestinationAddress = `#PRSP_Filter_Container_${pClauseHash}`;
|
|
159
|
-
this.render(null, tmpDestinationAddress, tmpRecord);
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
const tmpFilterByColumns = tmpClause.ExternalFilterByColumns || (tmpClause.ExternalFilterByColumn ? [ tmpClause.ExternalFilterByColumn ] : [ 'Name' ]);
|
|
163
|
-
const tmpMeadowFilter = tmpFilterByColumns.map((pColumn) => `FBVOR~${pColumn}~LK~${encodeURIComponent(`%${tmpSearchInputValue}%`)}`).join('~');
|
|
164
|
-
// bundle load the remote records and put them in the clause
|
|
165
|
-
this.pict.EntityProvider.gatherDataFromServer(
|
|
166
|
-
[
|
|
167
|
-
{
|
|
168
|
-
Entity: tmpClause.RemoteTable,
|
|
169
|
-
Filter: tmpMeadowFilter,
|
|
170
|
-
Destination: pOffset > 0 ? `${this.getInformaryAddressPrefix()}${pClauseInformaryAddress}.SearchResultsAppend` : `${this.getInformaryAddressPrefix()}${pClauseInformaryAddress}.SearchResults`,
|
|
171
|
-
RecordStartCursor: pOffset,
|
|
172
|
-
PageSize: this.options.PageSize,
|
|
173
|
-
}
|
|
174
|
-
],
|
|
175
|
-
(pError, pResult) =>
|
|
176
|
-
{
|
|
177
|
-
if (pOffset > 0 && tmpClause.SearchResultsAppend?.length > 0)
|
|
178
|
-
{
|
|
179
|
-
tmpClause.SearchResults = tmpClause.SearchResults.concat(tmpClause.SearchResultsAppend);
|
|
180
|
-
}
|
|
181
|
-
delete tmpClause.SearchResultsAppend;
|
|
182
|
-
tmpClause.SearchResultsOffset = pOffset;
|
|
183
|
-
const tmpRecord = Object.assign({ ClauseAddress: pClauseInformaryAddress }, tmpClause);
|
|
184
|
-
this.prepareRecord(tmpRecord);
|
|
185
|
-
const tmpDestinationAddress = `#PRSP_Filter_Container_${pClauseHash}`;
|
|
186
|
-
this.render(null, tmpDestinationAddress, tmpRecord);
|
|
187
|
-
const tmpLoadedRecords = pOffset > 0 ? tmpClause.SearchResultsAppend : tmpClause.SearchResults;
|
|
188
|
-
const tmpLoadMoreEnabled = tmpLoadedRecords && tmpLoadedRecords.length >= this.options.PageSize;
|
|
189
|
-
tmpClause.LoadMoreEnabled = tmpLoadMoreEnabled;
|
|
190
|
-
if (tmpClause.LoadMoreEnabled)
|
|
191
|
-
{
|
|
192
|
-
this.pict.ContentAssignment.removeClass(`#PRSP_Filter_${tmpClause.Hash}_Button_LoadMore`, 'is-hidden');
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
handleAdd(pEvent, pRecordLookupValue, pClauseInformaryAddress, pClauseHash)
|
|
12
|
+
getSearchEntity(pClause)
|
|
198
13
|
{
|
|
199
|
-
|
|
200
|
-
const tmpClause = this.getInformaryScopedValue(pClauseInformaryAddress);
|
|
201
|
-
if (!tmpClause)
|
|
202
|
-
{
|
|
203
|
-
this.pict.log.error(`[Filter-InternalJoinSelectedValueList] No clause found for address: ${pClauseInformaryAddress}`);
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
const tmpRecordLookupColumn = tmpClause.ExternalFilterTableLookupColumn || `ID${tmpClause.RemoteTable}`;
|
|
207
|
-
const tmpRecordToAdd = tmpClause.SearchResults.find((r) => r[tmpRecordLookupColumn] == pRecordLookupValue);
|
|
208
|
-
if (!tmpRecordToAdd)
|
|
209
|
-
{
|
|
210
|
-
this.pict.log.error(`[Filter-InternalJoinSelectedValueList] No record found to add for value: ${pRecordLookupValue}`);
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
if (!tmpClause.SelectedValues)
|
|
214
|
-
{
|
|
215
|
-
tmpClause.SelectedValues = [];
|
|
216
|
-
}
|
|
217
|
-
if (tmpClause.SelectedValues.some((pSV) => pSV[tmpRecordLookupColumn] == pRecordLookupValue))
|
|
218
|
-
{
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
const tmpValue = tmpRecordToAdd[tmpRecordLookupColumn];
|
|
222
|
-
if (tmpValue == null)
|
|
223
|
-
{
|
|
224
|
-
this.pict.log.error(`[Filter-InternalJoinSelectedValueList] No value found in record to add: ${JSON.stringify(tmpRecordToAdd)}`);
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
tmpClause.SelectedValues.push(tmpRecordToAdd);
|
|
228
|
-
if (!tmpClause.Values)
|
|
229
|
-
{
|
|
230
|
-
tmpClause.Values = [];
|
|
231
|
-
}
|
|
232
|
-
if (!tmpClause.Values.some((pV) => pV == tmpValue))
|
|
233
|
-
{
|
|
234
|
-
tmpClause.Values.push(tmpValue);
|
|
235
|
-
}
|
|
236
|
-
const tmpRecord = Object.assign({ ClauseAddress: pClauseInformaryAddress }, tmpClause);
|
|
237
|
-
this.prepareRecord(tmpRecord);
|
|
238
|
-
const tmpDestinationAddress = `#PRSP_Filter_Container_${pClauseHash}`;
|
|
239
|
-
this.render(null, tmpDestinationAddress, tmpRecord);
|
|
240
|
-
if (tmpClause.LoadMoreEnabled)
|
|
241
|
-
{
|
|
242
|
-
this.pict.ContentAssignment.removeClass(`#PRSP_Filter_${tmpClause.Hash}_Button_LoadMore`, 'is-hidden');
|
|
243
|
-
}
|
|
14
|
+
return pClause.RemoteTable;
|
|
244
15
|
}
|
|
245
16
|
|
|
246
|
-
|
|
17
|
+
isMultiSelect()
|
|
247
18
|
{
|
|
248
|
-
|
|
249
|
-
const tmpClause = this.getInformaryScopedValue(pClauseInformaryAddress);
|
|
250
|
-
if (!tmpClause)
|
|
251
|
-
{
|
|
252
|
-
this.pict.log.error(`[Filter-InternalJoinSelectedValueList] No clause found for address: ${pClauseInformaryAddress}`);
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
const tmpRecordLookupColumn = tmpClause.ExternalFilterTableLookupColumn || `ID${tmpClause.RemoteTable}`;
|
|
256
|
-
const tmpRecordIndexToRemove = tmpClause.SelectedValues.findIndex((r) => r[tmpRecordLookupColumn] == pRecordLookupValue);
|
|
257
|
-
if (tmpRecordIndexToRemove < 0)
|
|
258
|
-
{
|
|
259
|
-
this.pict.log.error(`[Filter-InternalJoinSelectedValueList] No record found to remove for value: ${pRecordLookupValue}`);
|
|
260
|
-
return;
|
|
261
|
-
}
|
|
262
|
-
const tmpRecordToRemove = tmpClause.SelectedValues.splice(tmpRecordIndexToRemove, 1)[0];
|
|
263
|
-
const tmpValue = tmpRecordToRemove[tmpRecordLookupColumn];
|
|
264
|
-
tmpClause.Values = tmpClause.Values.filter((pV) => pV !== tmpValue);
|
|
265
|
-
const tmpRecord = Object.assign({ ClauseAddress: pClauseInformaryAddress }, tmpClause);
|
|
266
|
-
this.prepareRecord(tmpRecord);
|
|
267
|
-
const tmpDestinationAddress = `#PRSP_Filter_Container_${pClauseHash}`;
|
|
268
|
-
this.render(null, tmpDestinationAddress, tmpRecord);
|
|
269
|
-
if (tmpClause.LoadMoreEnabled)
|
|
270
|
-
{
|
|
271
|
-
this.pict.ContentAssignment.removeClass(`#PRSP_Filter_${tmpClause.Hash}_Button_LoadMore`, 'is-hidden');
|
|
272
|
-
}
|
|
19
|
+
return true;
|
|
273
20
|
}
|
|
274
21
|
}
|
|
275
22
|
|
|
276
23
|
module.exports = ViewRecordSetSUBSETFilterInternalJoinSelectedValueList;
|
|
277
24
|
|
|
278
|
-
module.exports.default_configuration = Object.assign({},
|
|
25
|
+
module.exports.default_configuration = Object.assign({}, ViewRecordSetSUBSETFilterEntityReferenceBase.default_configuration, _DEFAULT_CONFIGURATION);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filter-PersistenceView.d.ts","sourceRoot":"","sources":["../../source/views/Filter-PersistenceView.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Filter-PersistenceView.d.ts","sourceRoot":"","sources":["../../source/views/Filter-PersistenceView.js"],"names":[],"mappings":";AAgFA;IAEC,2DASC;IAJA,yBAA4B;IAC5B,2BAA8B;IAC9B,+BAAqC;IACrC,qCAAwC;IAsBzC;;;;;;OAMG;IACH,8CALW,MAAM,gBACN,MAAM,wBAEJ,OAAO,CAqCnB;IAED;;;;;OAKG;IACH,8DAJW,MAAM,gBACN,MAAM,qCACN,OAAO,QA0BjB;IAED;;;;;;OAMG;IACH,oCALW,MAAM,gBACN,MAAM,wBAEJ,OAAO,CAYnB;IAED;;;OAGG;IACH,mCA2BC;IAED;;;;;;OAMG;IACH,2CALW,MAAM,gBACN,MAAM,aACN,MAAM,GACJ,OAAO,CAenB;IAED;;;;OAIG;IACH,sCAHW,KAAK,GACH,OAAO,CA6BnB;IAED;;;OAGG;IACH,4BAFa,OAAO,CAmBnB;IAED;;;OAGG;IACH,mDAFa,OAAO,CA+CnB;IAED;;;;OAIG;IACH,8CAHW,KAAK,GACH,OAAO,CAcnB;IAED;;;;OAIG;IACH,qCAHW,KAAK,mBACH,OAAO,CAqBnB;IAED;;;;;OAKG;IACH,yDAAyD;IACzD,iCAGC;IAED,qGAAqG;IACrG,4CAoBC;IAED;;;OAGG;IACH,0BAHa;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAqB9C;IAED;;;;;;;OAOG;IACH,mCAFW,KAAK,WA+Cf;IAED,mEA0BC;IAED;;;;;;OAMG;IACH,0CALW,KAAK,aACL,OAAO,yBAEL,OAAO,CAyBnB;IAED;;;OAGG;IACH,uCAFW,OAAO,QA4BjB;IAED;;;;;OAKG;IACH,uCAJW,KAAK,yBAEH,OAAO,CAsBnB;CACD"}
|
|
@@ -153,6 +153,14 @@ declare class ViewRecordSetSUBSETFilters extends libPictView {
|
|
|
153
153
|
_buildAddFilterFields(pRecordSet: string): void;
|
|
154
154
|
/** Reflect the add-filter popover's open/closed state on its container element. */
|
|
155
155
|
_paintAddFilterOpenState(): void;
|
|
156
|
+
/**
|
|
157
|
+
* Position the (fixed) add-filter popover against its trigger button, flipping above when there's
|
|
158
|
+
* more room there. Fixed positioning means no ancestor overflow:hidden (the host's filter card, the
|
|
159
|
+
* slide-out drawer) can clip it — the price is we set its top/left from the trigger's rect here.
|
|
160
|
+
*
|
|
161
|
+
* @param {HTMLElement} pPopover - the #PRSP_AddFilter_Popover element (already display:block).
|
|
162
|
+
*/
|
|
163
|
+
_positionAddFilterPopover(pPopover: HTMLElement): void;
|
|
156
164
|
/**
|
|
157
165
|
* @param {Event} pEvent - The DOM event that triggered the search
|
|
158
166
|
* @param {string} pRecordSet - The record set being filtered
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordSet-Filters.d.ts","sourceRoot":"","sources":["../../source/views/RecordSet-Filters.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"RecordSet-Filters.d.ts","sourceRoot":"","sources":["../../source/views/RecordSet-Filters.js"],"names":[],"mappings":";AAsTA;IAEC,2DAoDC;IAhDA,kHAAkH;IAClH,MADW,GAAe,GAAG,OAAO,MAAM,CAAC,GAAG;QAAE,oBAAoB,EAAE;;;;;;;;SAAsC,CAAA;KAAE,CACrG;IAeT,cAA+E;IAG/E,wCAA0E;IAK1E,gCAAmC;IACnC,4BAA6B;IAC7B,+BAAgC;IAGhC,qBAAwB;IACxB,kBAAuB;IAQvB,qBAAqB;IAErB,wBAA2B;IAC3B,4BAA+B;IAC/B,8BAAiC;IACjC,yBAA0B;IAC1B,2BAAiC;IAGjC,4BAA8B;IAG/B;;;;;OAKG;IACH,mBAFY,MAAM,CAMjB;IAED;;;OAGG;IACH,gDAGC;IAED;;;OAGG;IACH,mDAGC;IAED;;OAEG;IACH,gCAGC;IAED;;OAEG;IACH,mCAGC;IAED;;OAEG;IACH,6BAFY,MAAM,CAKjB;IAED;;;;OAIG;IACH,kCAJW,MAAM,GAEL,GAAG,CAMd;IAKD;;;OAGG;IACH,qBAFa,GAAG,CAaf;IAED;;;OAGG;IACH,mBAFa,GAAG,CAaf;IAED,iEAAiE;IACjE,8BAMC;IAED;;;;;;;OAOG;IACH,sBAFY,MAAM,CAcjB;IAED,yEAAyE;IACzE,8CAKC;IAED;;;;;;OAMG;IACH,iCAFW,MAAM,QAehB;IAED;;;;OAIG;IACH,qBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAUhB;IAED;;;;OAIG;IACH,0BAJW,MAAM,gBACN,MAAM,kBACN,MAAM,QAsDhB;IAED;;;;;OAKG;IACH,oBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAWhB;IAGD;;;;;OAKG;IACH,oBAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAoBhB;IAED;;;;;MAKE;IACF,qBALW,KAAK,cACL,MAAM,gBACN,MAAM,GACJ,OAAO,CAQnB;IAED;;;;OAIG;IACH,+BAJW,KAAK,cACL,MAAM,gBACN,MAAM,QAiBhB;IAED,oCAAoC;IACpC,8BAKC;IAED;;;;OAIG;IACH,wBAFW,MAAM,QAOhB;IAED;;;OAGG;IACH,iCAFW,MAAM,QAOhB;IAED;;;;OAIG;IACH,kCAFW,MAAM,QAgChB;IAED,mFAAmF;IACnF,iCAMC;IAED;;;;;;OAMG;IACH,oCAFW,WAAW,QA8BrB;IAED;;;;;;OAMG;IACH,kBANW,KAAK,cACL,MAAM,gBACN,MAAM,cACN,MAAM,cACN,MAAM,QAWhB;IAED;;;;;OAKG;IACH,qBALW,KAAK,cACL,MAAM,gBACN,MAAM,sBACN,MAAM,QAWhB;IAED;;;;OAIG;IACH,4BAHW,MAAM,GACL,KAAK,CAAC,GAAG,CAAC,CAMrB;IAgGD;;;;OAIG;IACH,uCAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClB,OAAO,CAAC,MAAM,CAAC,CAiB1B;IAED;;;;OAIG;IACH,yCAHW,MAAM,GACL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAUvC;IAED;;;;OAIG;IACH,iBAJW,MAAM,aACN,iBAAiB,GAChB,OAAO,CAAC,WAAW,CAAC,CAU/B;IAED;;;OAGG;IACH,sBAHW,UAAU,aACV,iBAAiB,mBAa3B;IAED;;;OAGG;IACH,oBAHW,WAAW,GACV,MAAM,CA2BjB;IAED;;;OAGG;IACH,eAHW,MAAM,GACL,WAAW,CAsCtB;CACD;;;;;;;AApjCD,kCAAkC;AAClC,oDADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsQ5B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export = ViewRecordSetSUBSETFilterEntityReferenceBase;
|
|
2
|
+
declare class ViewRecordSetSUBSETFilterEntityReferenceBase extends ViewRecordSetSUBSETFilterBase {
|
|
3
|
+
/** @param {Record<string, any>} pClause @return {string} The entity to search (RemoteTable / ExternalFilterByTable). */
|
|
4
|
+
getSearchEntity(pClause: Record<string, any>): string;
|
|
5
|
+
/** @param {Record<string, any>} pClause @return {string} The value/ID column on the searched entity. */
|
|
6
|
+
getLookupColumn(pClause: Record<string, any>): string;
|
|
7
|
+
/** @return {boolean} True for the `…List` (multi-select) variants. */
|
|
8
|
+
isMultiSelect(): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Host-injectable contextual search scope. Returns extra FoxHound filter stanza(s) AND-applied to
|
|
11
|
+
* the entity search (e.g. "only this project's line items"). Default: the clause's static
|
|
12
|
+
* `ContextScopeFilter` if any, else none. Hosts override this to read app state — the module never
|
|
13
|
+
* learns what a "project" or "spec year" is.
|
|
14
|
+
*
|
|
15
|
+
* @param {Record<string, any>} pClause @return {string|Array<string>}
|
|
16
|
+
*/
|
|
17
|
+
getContextScopeFilter(pClause: Record<string, any>): string | Array<string>;
|
|
18
|
+
loadMore(pEvent: any, pClauseInformaryAddress: any, pClauseHash: any, pCurrentOffset?: number): void;
|
|
19
|
+
performSearch(pEvent: any, pClauseInformaryAddress: any, pClauseHash: any, pOffset?: number): void;
|
|
20
|
+
handleAdd(pEvent: any, pRecordLookupValue: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
21
|
+
handleRemove(pEvent: any, pRecordLookupValue: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
22
|
+
/** Re-render a clause's container (the table UI re-paints on every search / add / remove). */
|
|
23
|
+
_reRenderClause(pClause: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
24
|
+
}
|
|
25
|
+
declare namespace ViewRecordSetSUBSETFilterEntityReferenceBase {
|
|
26
|
+
export { default_configuration };
|
|
27
|
+
}
|
|
28
|
+
import ViewRecordSetSUBSETFilterBase = require("./RecordSet-Filter-Base");
|
|
29
|
+
declare const default_configuration: Record<string, any> & {
|
|
30
|
+
ViewIdentifier: string;
|
|
31
|
+
EntityInputType: boolean;
|
|
32
|
+
Templates: {
|
|
33
|
+
Hash: string;
|
|
34
|
+
Template: string;
|
|
35
|
+
}[];
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=RecordSet-Filter-EntityReference-Base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordSet-Filter-EntityReference-Base.d.ts","sourceRoot":"","sources":["../../../source/views/filters/RecordSet-Filter-EntityReference-Base.js"],"names":[],"mappings":";AAwFA;IAaC,wHAAwH;IACxH,yBADY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAmB,MAAM,CAIvD;IAED,wGAAwG;IACxG,yBADY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAmB,MAAM,CAIvD;IAED,sEAAsE;IACtE,iBADa,OAAO,CAInB;IAED;;;;;;;OAOG;IACH,+BAFW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAmB,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC,CAKpE;IAoDD,qGAGC;IAED,mGAkDC;IAED,sGAwBC;IAED,yGAYC;IAED,8FAA8F;IAC9F,oFAKC;CACD"}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
export = ViewRecordSetSUBSETFilterExternalJoinSelectedValue;
|
|
2
|
-
declare class ViewRecordSetSUBSETFilterExternalJoinSelectedValue extends
|
|
3
|
-
|
|
4
|
-
* @param {UIEvent} pEvent
|
|
5
|
-
* @param {string} pClauseInformaryAddress
|
|
6
|
-
* @param {string} pClauseHash
|
|
7
|
-
*/
|
|
8
|
-
loadMore(pEvent: UIEvent, pClauseInformaryAddress: string, pClauseHash: string, pCurrentOffset?: number): void;
|
|
9
|
-
/**
|
|
10
|
-
* @param {UIEvent} pEvent
|
|
11
|
-
* @param {string} pClauseInformaryAddress
|
|
12
|
-
* @param {string} pClauseHash
|
|
13
|
-
* @param {number} [pOffset=0] - The offset for the search results, defaults to 0
|
|
14
|
-
*/
|
|
15
|
-
performSearch(pEvent: UIEvent, pClauseInformaryAddress: string, pClauseHash: string, pOffset?: number): void;
|
|
16
|
-
handleSelect(pEvent: any, pRecordLookupValue: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
17
|
-
handleRemove(pEvent: any, pRecordLookupValue: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
2
|
+
declare class ViewRecordSetSUBSETFilterExternalJoinSelectedValue extends ViewRecordSetSUBSETFilterEntityReferenceBase {
|
|
3
|
+
getSearchEntity(pClause: any): any;
|
|
18
4
|
}
|
|
19
5
|
declare namespace ViewRecordSetSUBSETFilterExternalJoinSelectedValue {
|
|
20
6
|
export { default_configuration };
|
|
21
7
|
}
|
|
22
|
-
import
|
|
23
|
-
declare const default_configuration: any
|
|
8
|
+
import ViewRecordSetSUBSETFilterEntityReferenceBase = require("./RecordSet-Filter-EntityReference-Base");
|
|
9
|
+
declare const default_configuration: Record<string, any> & {
|
|
10
|
+
ViewIdentifier: string;
|
|
11
|
+
EntityInputType: boolean;
|
|
12
|
+
Templates: {
|
|
13
|
+
Hash: string;
|
|
14
|
+
Template: string;
|
|
15
|
+
}[];
|
|
16
|
+
} & {
|
|
17
|
+
ViewIdentifier: string;
|
|
18
|
+
};
|
|
24
19
|
//# sourceMappingURL=RecordSet-Filter-ExternalJoinSelectedValue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordSet-Filter-ExternalJoinSelectedValue.d.ts","sourceRoot":"","sources":["../../../source/views/filters/RecordSet-Filter-ExternalJoinSelectedValue.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"RecordSet-Filter-ExternalJoinSelectedValue.d.ts","sourceRoot":"","sources":["../../../source/views/filters/RecordSet-Filter-ExternalJoinSelectedValue.js"],"names":[],"mappings":";AASA;IAEC,mCAGC;CAMD"}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
export = ViewRecordSetSUBSETFilterExternalJoinSelectedValueList;
|
|
2
|
-
declare class ViewRecordSetSUBSETFilterExternalJoinSelectedValueList extends
|
|
3
|
-
|
|
4
|
-
* @param {UIEvent} pEvent
|
|
5
|
-
* @param {string} pClauseInformaryAddress
|
|
6
|
-
* @param {string} pClauseHash
|
|
7
|
-
*/
|
|
8
|
-
loadMore(pEvent: UIEvent, pClauseInformaryAddress: string, pClauseHash: string, pCurrentOffset?: number): void;
|
|
9
|
-
/**
|
|
10
|
-
* @param {UIEvent} pEvent
|
|
11
|
-
* @param {string} pClauseInformaryAddress
|
|
12
|
-
* @param {string} pClauseHash
|
|
13
|
-
* @param {number} [pOffset=0] - The offset for the search results, defaults to 0
|
|
14
|
-
*/
|
|
15
|
-
performSearch(pEvent: UIEvent, pClauseInformaryAddress: string, pClauseHash: string, pOffset?: number): void;
|
|
16
|
-
handleAdd(pEvent: any, pRecordLookupValue: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
17
|
-
handleRemove(pEvent: any, pRecordLookupValue: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
2
|
+
declare class ViewRecordSetSUBSETFilterExternalJoinSelectedValueList extends ViewRecordSetSUBSETFilterEntityReferenceBase {
|
|
3
|
+
getSearchEntity(pClause: any): any;
|
|
18
4
|
}
|
|
19
5
|
declare namespace ViewRecordSetSUBSETFilterExternalJoinSelectedValueList {
|
|
20
6
|
export { default_configuration };
|
|
21
7
|
}
|
|
22
|
-
import
|
|
23
|
-
declare const default_configuration: any
|
|
8
|
+
import ViewRecordSetSUBSETFilterEntityReferenceBase = require("./RecordSet-Filter-EntityReference-Base");
|
|
9
|
+
declare const default_configuration: Record<string, any> & {
|
|
10
|
+
ViewIdentifier: string;
|
|
11
|
+
EntityInputType: boolean;
|
|
12
|
+
Templates: {
|
|
13
|
+
Hash: string;
|
|
14
|
+
Template: string;
|
|
15
|
+
}[];
|
|
16
|
+
} & {
|
|
17
|
+
ViewIdentifier: string;
|
|
18
|
+
};
|
|
24
19
|
//# sourceMappingURL=RecordSet-Filter-ExternalJoinSelectedValueList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordSet-Filter-ExternalJoinSelectedValueList.d.ts","sourceRoot":"","sources":["../../../source/views/filters/RecordSet-Filter-ExternalJoinSelectedValueList.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"RecordSet-Filter-ExternalJoinSelectedValueList.d.ts","sourceRoot":"","sources":["../../../source/views/filters/RecordSet-Filter-ExternalJoinSelectedValueList.js"],"names":[],"mappings":";AASA;IAEC,mCAGC;CAMD"}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
export = ViewRecordSetSUBSETFilterInternalJoinSelectedValue;
|
|
2
|
-
declare class ViewRecordSetSUBSETFilterInternalJoinSelectedValue extends
|
|
3
|
-
|
|
4
|
-
* @param {UIEvent} pEvent
|
|
5
|
-
* @param {string} pClauseInformaryAddress
|
|
6
|
-
* @param {string} pClauseHash
|
|
7
|
-
*/
|
|
8
|
-
loadMore(pEvent: UIEvent, pClauseInformaryAddress: string, pClauseHash: string, pCurrentOffset?: number): void;
|
|
9
|
-
/**
|
|
10
|
-
* @param {UIEvent} pEvent
|
|
11
|
-
* @param {string} pClauseInformaryAddress
|
|
12
|
-
* @param {string} pClauseHash
|
|
13
|
-
* @param {number} [pOffset=0] - The offset for the search results, defaults to 0
|
|
14
|
-
*/
|
|
15
|
-
performSearch(pEvent: UIEvent, pClauseInformaryAddress: string, pClauseHash: string, pOffset?: number): void;
|
|
16
|
-
handleSelect(pEvent: any, pRecordLookupValue: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
17
|
-
handleRemove(pEvent: any, pRecordLookupValue: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
2
|
+
declare class ViewRecordSetSUBSETFilterInternalJoinSelectedValue extends ViewRecordSetSUBSETFilterEntityReferenceBase {
|
|
3
|
+
getSearchEntity(pClause: any): any;
|
|
18
4
|
}
|
|
19
5
|
declare namespace ViewRecordSetSUBSETFilterInternalJoinSelectedValue {
|
|
20
6
|
export { default_configuration };
|
|
21
7
|
}
|
|
22
|
-
import
|
|
23
|
-
declare const default_configuration: any
|
|
8
|
+
import ViewRecordSetSUBSETFilterEntityReferenceBase = require("./RecordSet-Filter-EntityReference-Base");
|
|
9
|
+
declare const default_configuration: Record<string, any> & {
|
|
10
|
+
ViewIdentifier: string;
|
|
11
|
+
EntityInputType: boolean;
|
|
12
|
+
Templates: {
|
|
13
|
+
Hash: string;
|
|
14
|
+
Template: string;
|
|
15
|
+
}[];
|
|
16
|
+
} & {
|
|
17
|
+
ViewIdentifier: string;
|
|
18
|
+
};
|
|
24
19
|
//# sourceMappingURL=RecordSet-Filter-InternalJoinSelectedValue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordSet-Filter-InternalJoinSelectedValue.d.ts","sourceRoot":"","sources":["../../../source/views/filters/RecordSet-Filter-InternalJoinSelectedValue.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"RecordSet-Filter-InternalJoinSelectedValue.d.ts","sourceRoot":"","sources":["../../../source/views/filters/RecordSet-Filter-InternalJoinSelectedValue.js"],"names":[],"mappings":";AASA;IAEC,mCAGC;CAMD"}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
export = ViewRecordSetSUBSETFilterInternalJoinSelectedValueList;
|
|
2
|
-
declare class ViewRecordSetSUBSETFilterInternalJoinSelectedValueList extends
|
|
3
|
-
|
|
4
|
-
* @param {UIEvent} pEvent
|
|
5
|
-
* @param {string} pClauseInformaryAddress
|
|
6
|
-
* @param {string} pClauseHash
|
|
7
|
-
*/
|
|
8
|
-
loadMore(pEvent: UIEvent, pClauseInformaryAddress: string, pClauseHash: string, pCurrentOffset?: number): void;
|
|
9
|
-
/**
|
|
10
|
-
* @param {UIEvent} pEvent
|
|
11
|
-
* @param {string} pClauseInformaryAddress
|
|
12
|
-
* @param {string} pClauseHash
|
|
13
|
-
* @param {number} [pOffset=0] - The offset for the search results, defaults to 0
|
|
14
|
-
*/
|
|
15
|
-
performSearch(pEvent: UIEvent, pClauseInformaryAddress: string, pClauseHash: string, pOffset?: number): void;
|
|
16
|
-
handleAdd(pEvent: any, pRecordLookupValue: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
17
|
-
handleRemove(pEvent: any, pRecordLookupValue: any, pClauseInformaryAddress: any, pClauseHash: any): void;
|
|
2
|
+
declare class ViewRecordSetSUBSETFilterInternalJoinSelectedValueList extends ViewRecordSetSUBSETFilterEntityReferenceBase {
|
|
3
|
+
getSearchEntity(pClause: any): any;
|
|
18
4
|
}
|
|
19
5
|
declare namespace ViewRecordSetSUBSETFilterInternalJoinSelectedValueList {
|
|
20
6
|
export { default_configuration };
|
|
21
7
|
}
|
|
22
|
-
import
|
|
23
|
-
declare const default_configuration: any
|
|
8
|
+
import ViewRecordSetSUBSETFilterEntityReferenceBase = require("./RecordSet-Filter-EntityReference-Base");
|
|
9
|
+
declare const default_configuration: Record<string, any> & {
|
|
10
|
+
ViewIdentifier: string;
|
|
11
|
+
EntityInputType: boolean;
|
|
12
|
+
Templates: {
|
|
13
|
+
Hash: string;
|
|
14
|
+
Template: string;
|
|
15
|
+
}[];
|
|
16
|
+
} & {
|
|
17
|
+
ViewIdentifier: string;
|
|
18
|
+
};
|
|
24
19
|
//# sourceMappingURL=RecordSet-Filter-InternalJoinSelectedValueList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordSet-Filter-InternalJoinSelectedValueList.d.ts","sourceRoot":"","sources":["../../../source/views/filters/RecordSet-Filter-InternalJoinSelectedValueList.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"RecordSet-Filter-InternalJoinSelectedValueList.d.ts","sourceRoot":"","sources":["../../../source/views/filters/RecordSet-Filter-InternalJoinSelectedValueList.js"],"names":[],"mappings":";AASA;IAEC,mCAGC;CAMD"}
|