@pega/angular-sdk-components 0.24.2 → 0.24.3
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/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +1 -3
- package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +3 -8
- package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +3 -8
- package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +3 -2
- package/esm2022/lib/_components/field/text-area/text-area.component.mjs +1 -3
- package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +1 -13
- package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +1 -2
- package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +1 -2
- package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +3 -9
- package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +1 -2
- package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +6 -9
- package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +1 -2
- package/esm2022/lib/_components/template/case-view/case-view.component.mjs +3 -9
- package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +2 -4
- package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +1 -2
- package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +5 -15
- package/esm2022/lib/_components/template/list-view/list-view.component.mjs +12 -6
- package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +1 -2
- package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +1 -2
- package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +1 -3
- package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +6 -12
- package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +3 -5
- package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +224 -421
- package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +1 -2
- package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +1 -5
- package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +1 -5
- package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +1 -1
- package/esm2022/lib/_components/widget/todo/todo.component.mjs +1 -1
- package/fesm2022/pega-angular-sdk-components.mjs +255 -528
- package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
- package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +1 -1
- package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +1 -1
- package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +1 -1
- package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +1 -1
- package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +1 -1
- package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +1 -1
- package/lib/_components/template/list-view/list-view.component.d.ts +8 -2
- package/lib/_components/template/simple-table-manual/helpers.d.ts +1 -1
- package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +1 -1
- package/lib/_components/widget/attachment/attachment.component.d.ts +29 -57
- package/lib/_components/widget/file-utility/file-utility.component.d.ts +2 -2
- package/lib/_components/widget/todo/todo.component.d.ts +3 -3
- package/lib/_helpers/common.d.ts +1 -1
- package/lib/_helpers/field-group-utils.d.ts +1 -1
- package/lib/_helpers/filter-utils.d.ts +1 -1
- package/lib/_helpers/formatters/common.d.ts +2 -2
- package/package.json +3 -3
|
@@ -1425,8 +1425,8 @@ class AssignmentComponent {
|
|
|
1425
1425
|
const savePromise = this.saveAssignment(this.itemKey$);
|
|
1426
1426
|
savePromise
|
|
1427
1427
|
.then(() => {
|
|
1428
|
+
// @ts-ignore - Property 'c11nEnv' is private and only accessible within class 'CaseInfo'.
|
|
1428
1429
|
const caseType = this.pConn$.getCaseInfo().c11nEnv.getValue(PCore.getConstants().CASE_INFO.CASE_TYPE_ID);
|
|
1429
|
-
// @ts-ignore - second parameter “payload” for publish method should be optional
|
|
1430
1430
|
PCore.getPubSubUtils().publish('cancelPressed');
|
|
1431
1431
|
this.onSaveActionSuccess({ caseType, caseID, assignmentID });
|
|
1432
1432
|
})
|
|
@@ -1439,12 +1439,8 @@ class AssignmentComponent {
|
|
|
1439
1439
|
case 'cancelAssignment':
|
|
1440
1440
|
this.bReInit = true;
|
|
1441
1441
|
this.erService.sendMessage('dismiss', '');
|
|
1442
|
-
// @ts-ignore - Property 'isAssignmentInCreateStage' is private and only accessible within class 'CaseInfo'
|
|
1443
1442
|
const isAssignmentInCreateStage = this.pConn$.getCaseInfo().isAssignmentInCreateStage();
|
|
1444
|
-
const isLocalAction =
|
|
1445
|
-
// @ts-ignore - Property 'isLocalAction' is private and only accessible within class 'CaseInfo'.
|
|
1446
|
-
this.pConn$.getCaseInfo().isLocalAction() ||
|
|
1447
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
1443
|
+
const isLocalAction = this.pConn$.getCaseInfo().isLocalAction() ||
|
|
1448
1444
|
(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION && this.pConn$.getValue(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION));
|
|
1449
1445
|
// check if create stage (modal)
|
|
1450
1446
|
if (isAssignmentInCreateStage && this.isInModal$ && !isLocalAction) {
|
|
@@ -1464,13 +1460,11 @@ class AssignmentComponent {
|
|
|
1464
1460
|
this.psService.sendMessage(true);
|
|
1465
1461
|
// publish before cancel pressed, because
|
|
1466
1462
|
// cancel assignment happens "after" cancel assignment happens
|
|
1467
|
-
// @ts-ignore - second parameter “payload” for publish method should be optional
|
|
1468
1463
|
PCore.getPubSubUtils().publish('cancelPressed');
|
|
1469
1464
|
const cancelPromise = this.cancelAssignment(this.itemKey$);
|
|
1470
1465
|
cancelPromise
|
|
1471
1466
|
.then(() => {
|
|
1472
1467
|
this.psService.sendMessage(false);
|
|
1473
|
-
// @ts-ignore - second parameter “payload” for publish method should be optional
|
|
1474
1468
|
PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);
|
|
1475
1469
|
})
|
|
1476
1470
|
.catch(() => {
|
|
@@ -1688,7 +1682,6 @@ class DashboardFilterComponent {
|
|
|
1688
1682
|
}
|
|
1689
1683
|
clearFilters() {
|
|
1690
1684
|
this.filtersFormGroup$.reset();
|
|
1691
|
-
// @ts-ignore - second parameter “payload” for publish method should be optional
|
|
1692
1685
|
PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CLEAR_ALL);
|
|
1693
1686
|
}
|
|
1694
1687
|
updateTmpData(filterData) {
|
|
@@ -1759,7 +1752,6 @@ class DeferLoadComponent {
|
|
|
1759
1752
|
this.currentLoadedAssignment = '';
|
|
1760
1753
|
this.getViewOptions = () => ({
|
|
1761
1754
|
viewContext: this.resourceType,
|
|
1762
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
1763
1755
|
pageClass: this.loadViewCaseID ? '' : this.pConn$.getDataObject().pyPortal.classID,
|
|
1764
1756
|
container: this.isContainerPreview ? 'preview' : null,
|
|
1765
1757
|
containerName: this.isContainerPreview ? 'preview' : null,
|
|
@@ -1769,7 +1761,8 @@ class DeferLoadComponent {
|
|
|
1769
1761
|
}
|
|
1770
1762
|
ngOnInit() {
|
|
1771
1763
|
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
1772
|
-
|
|
1764
|
+
// The below call is causing an error while creating/opening a case, hence commenting it out
|
|
1765
|
+
// this.loadActiveTab();
|
|
1773
1766
|
}
|
|
1774
1767
|
ngOnDestroy() {
|
|
1775
1768
|
if (this.angularPConnectData.unsubscribeFn) {
|
|
@@ -1779,7 +1772,6 @@ class DeferLoadComponent {
|
|
|
1779
1772
|
onStateChange() {
|
|
1780
1773
|
// Should always check the bridge to see if the component should
|
|
1781
1774
|
// update itself (re-render)
|
|
1782
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
1783
1775
|
const theRequestedAssignment = this.pConn$.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENT_LABEL);
|
|
1784
1776
|
if (theRequestedAssignment !== this.currentLoadedAssignment) {
|
|
1785
1777
|
this.currentLoadedAssignment = theRequestedAssignment;
|
|
@@ -1787,7 +1779,6 @@ class DeferLoadComponent {
|
|
|
1787
1779
|
}
|
|
1788
1780
|
}
|
|
1789
1781
|
ngOnChanges() {
|
|
1790
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
1791
1782
|
this.loadViewCaseID = this.pConn$.getValue(this.constants.PZINSKEY) || this.pConn$.getValue(this.constants.CASE_INFO.CASE_INFO_ID);
|
|
1792
1783
|
let containerItemData;
|
|
1793
1784
|
const targetName = this.pConn$.getTarget();
|
|
@@ -1838,9 +1829,8 @@ class DeferLoadComponent {
|
|
|
1838
1829
|
this.pConn$
|
|
1839
1830
|
.getActionsApi()
|
|
1840
1831
|
.showData(this.name, dataContext, dataContextParameters, {
|
|
1841
|
-
// @ts-ignore - skipSemanticUrl should be boolean type
|
|
1842
1832
|
skipSemanticUrl: true,
|
|
1843
|
-
// @ts-ignore
|
|
1833
|
+
// @ts-ignore - Object literal may only specify known properties, and 'isDeferLoaded' does not exist in type '{ containerName: string; skipSemanticUrl: boolean; }'
|
|
1844
1834
|
isDeferLoaded: true
|
|
1845
1835
|
})
|
|
1846
1836
|
.then(data => {
|
|
@@ -1863,8 +1853,8 @@ class DeferLoadComponent {
|
|
|
1863
1853
|
else {
|
|
1864
1854
|
this.pConn$
|
|
1865
1855
|
.getActionsApi()
|
|
1866
|
-
.refreshCaseView(encodeURI(this.loadViewCaseID), this.name,
|
|
1867
|
-
.then(data => {
|
|
1856
|
+
.refreshCaseView(encodeURI(this.loadViewCaseID), this.name, '')
|
|
1857
|
+
.then((data) => {
|
|
1868
1858
|
this.onResponse(data.root);
|
|
1869
1859
|
});
|
|
1870
1860
|
}
|
|
@@ -2062,7 +2052,6 @@ class FlowContainerComponent {
|
|
|
2062
2052
|
});
|
|
2063
2053
|
}
|
|
2064
2054
|
getTodoVisibilty() {
|
|
2065
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2066
2055
|
const caseViewMode = this.pConn$.getValue('context_data.caseViewMode');
|
|
2067
2056
|
if (caseViewMode && caseViewMode === 'review') {
|
|
2068
2057
|
const kid = this.pConn$.getChildren()[0];
|
|
@@ -2135,7 +2124,6 @@ class FlowContainerComponent {
|
|
|
2135
2124
|
}
|
|
2136
2125
|
hasAssignments() {
|
|
2137
2126
|
let hasAssignments = false;
|
|
2138
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2139
2127
|
const assignmentsList = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS);
|
|
2140
2128
|
// const thisOperator = PCore.getEnvironmentInfo().getOperatorIdentifier();
|
|
2141
2129
|
// 8.7 includes assignments in Assignments List that may be assigned to
|
|
@@ -2165,9 +2153,7 @@ class FlowContainerComponent {
|
|
|
2165
2153
|
return hasAssignments;
|
|
2166
2154
|
}
|
|
2167
2155
|
isCaseWideLocalAction() {
|
|
2168
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2169
2156
|
const actionID = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.ACTIVE_ACTION_ID);
|
|
2170
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2171
2157
|
const caseActions = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.AVAILABLEACTIONS);
|
|
2172
2158
|
let bCaseWideAction = false;
|
|
2173
2159
|
if (caseActions && actionID) {
|
|
@@ -2179,16 +2165,13 @@ class FlowContainerComponent {
|
|
|
2179
2165
|
return bCaseWideAction;
|
|
2180
2166
|
}
|
|
2181
2167
|
hasChildCaseAssignments() {
|
|
2182
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2183
2168
|
const childCases = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.CHILD_ASSIGNMENTS);
|
|
2184
2169
|
return childCases && childCases.length > 0;
|
|
2185
2170
|
}
|
|
2186
2171
|
getActiveViewLabel() {
|
|
2187
2172
|
let activeActionLabel = '';
|
|
2188
2173
|
const { CASE_INFO: CASE_CONSTS } = PCore.getConstants();
|
|
2189
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2190
2174
|
const caseActions = this.pConn$.getValue(CASE_CONSTS.CASE_INFO_ACTIONS);
|
|
2191
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2192
2175
|
const activeActionID = this.pConn$.getValue(CASE_CONSTS.ACTIVE_ACTION_ID);
|
|
2193
2176
|
const activeAction = caseActions?.find(action => action.ID === activeActionID);
|
|
2194
2177
|
if (activeAction) {
|
|
@@ -2224,7 +2207,6 @@ class FlowContainerComponent {
|
|
|
2224
2207
|
// for now
|
|
2225
2208
|
// const { getPConnect } = this.arChildren$[0].getPConnect();
|
|
2226
2209
|
const localPConn = this.arChildren$[0].getPConnect();
|
|
2227
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2228
2210
|
const caseViewMode = this.pConn$.getValue('context_data.caseViewMode');
|
|
2229
2211
|
this.bShowBanner = showBanner(this.pConn$);
|
|
2230
2212
|
if (caseViewMode && caseViewMode == 'review') {
|
|
@@ -2270,7 +2252,6 @@ class FlowContainerComponent {
|
|
|
2270
2252
|
*/
|
|
2271
2253
|
const todoAssignments = getToDoAssignments(this.pConn$);
|
|
2272
2254
|
if (todoAssignments && todoAssignments.length > 0) {
|
|
2273
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2274
2255
|
this.todo_caseInfoID$ = this.pConn$.getValue(CASE_CONSTS.CASE_INFO_ID);
|
|
2275
2256
|
this.todo_datasource$ = { source: todoAssignments };
|
|
2276
2257
|
}
|
|
@@ -2290,7 +2271,6 @@ class FlowContainerComponent {
|
|
|
2290
2271
|
});
|
|
2291
2272
|
}
|
|
2292
2273
|
showCaseMessages() {
|
|
2293
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2294
2274
|
this.caseMessages$ = this.localizedVal(this.pConn$.getValue('caseMessages'), this.localeCategory);
|
|
2295
2275
|
if (this.caseMessages$ || !this.hasAssignments()) {
|
|
2296
2276
|
this.bHasCaseMessages$ = true;
|
|
@@ -2302,7 +2282,6 @@ class FlowContainerComponent {
|
|
|
2302
2282
|
this.caseMessages$ = this.localizedVal('Thank you! The next step in this case has been routed appropriately.', this.localeCategory);
|
|
2303
2283
|
}
|
|
2304
2284
|
// publish this "assignmentFinished" for mashup, need to get approved as a standard
|
|
2305
|
-
// @ts-ignore - second parameter “payload” for publish method should be optional
|
|
2306
2285
|
PCore.getPubSubUtils().publish('assignmentFinished');
|
|
2307
2286
|
this.psService.sendMessage(false);
|
|
2308
2287
|
}
|
|
@@ -2387,7 +2366,6 @@ class FlowContainerComponent {
|
|
|
2387
2366
|
this.arChildren$.push(normalizedConfigObjectAsPConnect);
|
|
2388
2367
|
this.psService.sendMessage(false);
|
|
2389
2368
|
const oWorkItem = configObject.getPConnect();
|
|
2390
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
2391
2369
|
const oWorkData = oWorkItem.getDataObject();
|
|
2392
2370
|
this.containerName$ = this.localizedVal(this.getActiveViewLabel() || oWorkData.caseInfo.assignments?.[0].name, undefined, this.localeReference);
|
|
2393
2371
|
});
|
|
@@ -2663,7 +2641,6 @@ class ModalViewContainerComponent {
|
|
|
2663
2641
|
const configObject = this.getConfigObject(currentItem, this.pConn$);
|
|
2664
2642
|
const newComp = configObject?.getPConnect();
|
|
2665
2643
|
// const newCompName = newComp.getComponentName();
|
|
2666
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
2667
2644
|
const caseInfo = newComp && newComp.getDataObject() && newComp.getDataObject().caseInfo ? newComp.getDataObject().caseInfo : null;
|
|
2668
2645
|
// The metadata for pyDetails changed such that the "template": "CaseView"
|
|
2669
2646
|
// is no longer a child of the created View but is in the created View's
|
|
@@ -2958,7 +2935,6 @@ class NavbarComponent {
|
|
|
2958
2935
|
this.navPages$.forEach(page => {
|
|
2959
2936
|
page.iconName = this.utils.getImageSrc(page.pxPageViewIcon, this.utils.getSDKStaticContentUrl());
|
|
2960
2937
|
});
|
|
2961
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
2962
2938
|
this.localeReference = this.pConn$.getValue('.pyLocaleReference');
|
|
2963
2939
|
this.actionsAPI = this.pConn$.getActionsApi();
|
|
2964
2940
|
this.createWork = this.actionsAPI.createWork.bind(this.actionsAPI);
|
|
@@ -3725,7 +3701,6 @@ class ViewContainerComponent {
|
|
|
3725
3701
|
}
|
|
3726
3702
|
}
|
|
3727
3703
|
if (sessionStorage.getItem('hasViewContainer') == 'false') {
|
|
3728
|
-
// @ts-ignore - Property 'getMetadata' is private and only accessible within class
|
|
3729
3704
|
if (this.pConn$.getMetadata().children) {
|
|
3730
3705
|
containerMgr.addContainerItem(this.dispatchObject);
|
|
3731
3706
|
}
|
|
@@ -4315,7 +4290,6 @@ class CancelAlertComponent {
|
|
|
4315
4290
|
.then(() => {
|
|
4316
4291
|
this.psService.sendMessage(false);
|
|
4317
4292
|
this.dismissAlert();
|
|
4318
|
-
// @ts-ignore - second parameter “payload” for publish method should be optional
|
|
4319
4293
|
PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CASE_CREATED);
|
|
4320
4294
|
})
|
|
4321
4295
|
.catch(() => {
|
|
@@ -4334,7 +4308,6 @@ class CancelAlertComponent {
|
|
|
4334
4308
|
.then(() => {
|
|
4335
4309
|
this.psService.sendMessage(false);
|
|
4336
4310
|
this.dismissAlert();
|
|
4337
|
-
// @ts-ignore - second parameter “payload” for publish method should be optional
|
|
4338
4311
|
PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);
|
|
4339
4312
|
})
|
|
4340
4313
|
.catch(() => {
|
|
@@ -6766,7 +6739,6 @@ class DropdownComponent {
|
|
|
6766
6739
|
this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);
|
|
6767
6740
|
}
|
|
6768
6741
|
this.componentReference = this.pConn$.getStateProps().value;
|
|
6769
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
6770
6742
|
const optionsList = [...this.utils.getOptionList(this.configProps$, this.pConn$.getDataObject())];
|
|
6771
6743
|
optionsList?.unshift({ key: 'Select', value: this.pConn$.getLocalizedValue('Select...', '', '') });
|
|
6772
6744
|
this.options$ = optionsList;
|
|
@@ -6784,9 +6756,7 @@ class DropdownComponent {
|
|
|
6784
6756
|
this.localeClass = this.localeContext === 'datapage' ? '@baseclass' : className;
|
|
6785
6757
|
this.localeName = this.localeContext === 'datapage' ? metaData?.datasource?.name : refName;
|
|
6786
6758
|
this.localePath = this.localeContext === 'datapage' ? displayName : this.localeName;
|
|
6787
|
-
this.localizedValue = this.pConn$.getLocalizedValue(this.value$, this.localePath,
|
|
6788
|
-
// @ts-ignore - Property 'getLocaleRuleNameFromKeys' is private and only accessible within class 'C11nEnv'.
|
|
6789
|
-
this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName));
|
|
6759
|
+
this.localizedValue = this.pConn$.getLocalizedValue(this.value$, this.localePath, this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName));
|
|
6790
6760
|
// trigger display of error message with field control
|
|
6791
6761
|
if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {
|
|
6792
6762
|
const timer = interval(100).subscribe(() => {
|
|
@@ -6815,9 +6785,7 @@ class DropdownComponent {
|
|
|
6815
6785
|
this.angularPConnectData.actions?.onBlur(this, event);
|
|
6816
6786
|
}
|
|
6817
6787
|
getLocalizedOptionValue(opt) {
|
|
6818
|
-
return this.pConn$.getLocalizedValue(opt.value, this.localePath,
|
|
6819
|
-
// @ts-ignore - Property 'getLocaleRuleNameFromKeys' is private and only accessible within class 'C11nEnv'.
|
|
6820
|
-
this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName));
|
|
6788
|
+
return this.pConn$.getLocalizedValue(opt.value, this.localePath, this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName));
|
|
6821
6789
|
}
|
|
6822
6790
|
getErrorMessage() {
|
|
6823
6791
|
let errMessage = '';
|
|
@@ -7630,7 +7598,6 @@ class RadioButtonsComponent {
|
|
|
7630
7598
|
this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);
|
|
7631
7599
|
}
|
|
7632
7600
|
this.componentReference = this.pConn$.getStateProps().value;
|
|
7633
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
7634
7601
|
this.options$ = this.utils.getOptionList(this.configProps$, this.pConn$.getDataObject());
|
|
7635
7602
|
const propName = this.pConn$.getStateProps().value;
|
|
7636
7603
|
const className = this.pConn$.getCaseInfo().getClassName();
|
|
@@ -7643,9 +7610,7 @@ class RadioButtonsComponent {
|
|
|
7643
7610
|
this.localeClass = this.localeContext === 'datapage' ? '@baseclass' : className;
|
|
7644
7611
|
this.localeName = this.localeContext === 'datapage' ? metaData?.datasource?.name : refName;
|
|
7645
7612
|
this.localePath = this.localeContext === 'datapage' ? displayName : this.localeName;
|
|
7646
|
-
this.localizedValue = this.pConn$.getLocalizedValue(this.value$, this.localePath,
|
|
7647
|
-
// @ts-ignore - Property 'getLocaleRuleNameFromKeys' is private and only accessible within class 'C11nEnv'
|
|
7648
|
-
this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName));
|
|
7613
|
+
this.localizedValue = this.pConn$.getLocalizedValue(this.value$, this.localePath, this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName));
|
|
7649
7614
|
// trigger display of error message with field control
|
|
7650
7615
|
if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {
|
|
7651
7616
|
const timer = interval(100).subscribe(() => {
|
|
@@ -7666,9 +7631,7 @@ class RadioButtonsComponent {
|
|
|
7666
7631
|
this.angularPConnectData.actions?.onBlur(this, event);
|
|
7667
7632
|
}
|
|
7668
7633
|
getLocalizedOptionValue(opt) {
|
|
7669
|
-
return this.pConn$.getLocalizedValue(opt.value, this.localePath,
|
|
7670
|
-
// @ts-ignore - Property 'getLocaleRuleNameFromKeys' is private and only accessible within class 'C11nEnv'
|
|
7671
|
-
this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName));
|
|
7634
|
+
return this.pConn$.getLocalizedValue(opt.value, this.localePath, this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName));
|
|
7672
7635
|
}
|
|
7673
7636
|
getErrorMessage() {
|
|
7674
7637
|
let errMessage = '';
|
|
@@ -7812,8 +7775,6 @@ class TextAreaComponent {
|
|
|
7812
7775
|
if (this.configProps$.value != undefined) {
|
|
7813
7776
|
this.value$ = this.configProps$.value;
|
|
7814
7777
|
}
|
|
7815
|
-
// @ts-ignore - Property 'getFieldMetadata' is private and only accessible within class 'C11nEnv'.
|
|
7816
|
-
// @ts-ignore - Property 'getRawConfigProps' is private and only accessible within class 'C11nEnv'
|
|
7817
7778
|
this.nMaxLength$ = this.pConn$.getFieldMetadata(this.pConn$.getRawConfigProps()?.value)?.maxLength || 100;
|
|
7818
7779
|
this.testId = this.configProps$.testId;
|
|
7819
7780
|
this.displayMode$ = this.configProps$.displayMode;
|
|
@@ -8729,11 +8690,12 @@ class ScalarListComponent {
|
|
|
8729
8690
|
return this.pConn$.createComponent({
|
|
8730
8691
|
type: componentType,
|
|
8731
8692
|
config: {
|
|
8693
|
+
// @ts-ignore - Object literal may only specify known properties, and 'value' does not exist in type 'ComponentMetadataConfig'.
|
|
8732
8694
|
value: scalarValue,
|
|
8733
8695
|
displayMode: 'LABELS_LEFT',
|
|
8734
8696
|
label: this.label$,
|
|
8735
8697
|
...restProps,
|
|
8736
|
-
readOnly:
|
|
8698
|
+
readOnly: true
|
|
8737
8699
|
}
|
|
8738
8700
|
}, '', '', {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional;
|
|
8739
8701
|
});
|
|
@@ -9166,9 +9128,7 @@ class CaseViewComponent {
|
|
|
9166
9128
|
}
|
|
9167
9129
|
}
|
|
9168
9130
|
hasCaseIDChanged() {
|
|
9169
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
9170
9131
|
if (this.currentCaseID !== this.pConn$.getDataObject().caseInfo.ID) {
|
|
9171
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
9172
9132
|
this.currentCaseID = this.pConn$.getDataObject().caseInfo.ID;
|
|
9173
9133
|
return true;
|
|
9174
9134
|
}
|
|
@@ -9176,12 +9136,10 @@ class CaseViewComponent {
|
|
|
9176
9136
|
}
|
|
9177
9137
|
updateHeaderAndSummary() {
|
|
9178
9138
|
this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
9179
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
9180
9139
|
const hasNewAttachments = this.pConn$.getDataObject().caseInfo?.hasNewAttachments;
|
|
9181
9140
|
if (hasNewAttachments !== this.bHasNewAttachments) {
|
|
9182
9141
|
this.bHasNewAttachments = hasNewAttachments;
|
|
9183
9142
|
if (this.bHasNewAttachments) {
|
|
9184
|
-
// @ts-ignore - Argument of type 'boolean' is not assignable to parameter of type 'object'
|
|
9185
9143
|
PCore.getPubSubUtils().publish(PCore.getEvents().getCaseEvent().CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, true);
|
|
9186
9144
|
}
|
|
9187
9145
|
}
|
|
@@ -9197,7 +9155,6 @@ class CaseViewComponent {
|
|
|
9197
9155
|
timer.unsubscribe();
|
|
9198
9156
|
this.heading$ = PCore.getLocaleUtils().getLocaleValue(this.configProps$.header, '', this.localeKey);
|
|
9199
9157
|
this.id$ = this.configProps$.subheader;
|
|
9200
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
9201
9158
|
this.status$ = this.pConn$.getValue('.pyStatusWork');
|
|
9202
9159
|
});
|
|
9203
9160
|
}
|
|
@@ -9210,7 +9167,6 @@ class CaseViewComponent {
|
|
|
9210
9167
|
this.localeKey = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();
|
|
9211
9168
|
this.updateHeaderAndSummary();
|
|
9212
9169
|
this.arChildren$ = this.pConn$.getChildren();
|
|
9213
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
9214
9170
|
const caseInfo = this.pConn$.getDataObject().caseInfo;
|
|
9215
9171
|
this.currentCaseID = caseInfo.ID;
|
|
9216
9172
|
this.arAvailableActions$ = caseInfo?.availableActions ? caseInfo.availableActions : [];
|
|
@@ -9279,11 +9235,11 @@ class CaseViewComponent {
|
|
|
9279
9235
|
openProcessAction(data.ID, { ...data });
|
|
9280
9236
|
}
|
|
9281
9237
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: AngularPConnectService }, { token: Utils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9282
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CaseViewComponent, isStandalone: true, selector: "app-case-view", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", displayOnlyFA$: "displayOnlyFA$" }, providers: [Utils], ngImport: i0, template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div *ngIf=\"!displayOnlyFA$\" class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n
|
|
9238
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CaseViewComponent, isStandalone: true, selector: "app-case-view", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", displayOnlyFA$: "displayOnlyFA$" }, providers: [Utils], ngImport: i0, template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div *ngIf=\"!displayOnlyFA$\" class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div>\n <h1 id=\"case-name\">{{ heading$ }}</h1>\n </div>\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"psdk-case-view-buttons\">\n <button *ngIf=\"editAction\" mat-raised-button color=\"secondary\" (click)=\"_editClick()\">{{ localizedVal('Edit', localeCategory) }}</button>\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n\n <div class=\"psdk-case-view-divider\"></div>\n\n <div class=\"psdk-case-view-summary\">\n <component-mapper name=\"CaseSummary\" [props]=\"{ pConn$: caseSummaryPConn$ }\"></component-mapper>\n </div>\n\n <component-mapper\n *ngIf=\"caseTabs$.length > 1\"\n name=\"VerticalTabs\"\n [props]=\"{ tabConfig$: caseTabs$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ tabClick: onTabClick }\"\n ></component-mapper>\n </div>\n <div class=\"psdk-case-view-main\">\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages'\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngIf=\"!displayOnlyFA$\">\n <component-mapper name=\"DeferLoad\" [props]=\"{ pConn$, loadData$: tabData$, name: tabData$?.config?.name }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngIf=\"arChildren$\" class=\"psdk-case-view-utilities\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--app-primary-dark-color);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;padding:0rem .3125rem 0rem 0rem;margin-left:.5rem;margin-top:.5rem;height:100%;background-color:var(--app-form-color)}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{width:21.875rem;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-status{padding:.3125rem;background-color:var(--app-primary-color);color:var(--app-form-color);width:fit-content;margin:.625rem}button{margin:0rem .3125rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatToolbarModule) }, { kind: "component", type: i0.forwardRef(() => i4$4.MatToolbar), selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i0.forwardRef(() => i4$4.MatToolbarRow), selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3$1.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatMenuModule) }, { kind: "component", type: i0.forwardRef(() => i6$1.MatMenu), selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i0.forwardRef(() => i6$1.MatMenuItem), selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i0.forwardRef(() => i6$1.MatMenuTrigger), selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
9283
9239
|
}
|
|
9284
9240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseViewComponent, decorators: [{
|
|
9285
9241
|
type: Component,
|
|
9286
|
-
args: [{ selector: 'app-case-view', providers: [Utils], standalone: true, imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div *ngIf=\"!displayOnlyFA$\" class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n
|
|
9242
|
+
args: [{ selector: 'app-case-view', providers: [Utils], standalone: true, imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"psdk-case-view\" id=\"case-view\">\n <div *ngIf=\"!displayOnlyFA$\" class=\"psdk-case-view-info\">\n <mat-toolbar color=\"primary\" class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row style=\"padding-left: 1rem\">\n <div class=\"psdk-case-icon-div\">\n <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n </div>\n <div class=\"psdk-case-view-heading\">\n <div>\n <h1 id=\"case-name\">{{ heading$ }}</h1>\n </div>\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"psdk-case-view-buttons\">\n <button *ngIf=\"editAction\" mat-raised-button color=\"secondary\" (click)=\"_editClick()\">{{ localizedVal('Edit', localeCategory) }}</button>\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n\n <div class=\"psdk-case-view-divider\"></div>\n\n <div class=\"psdk-case-view-summary\">\n <component-mapper name=\"CaseSummary\" [props]=\"{ pConn$: caseSummaryPConn$ }\"></component-mapper>\n </div>\n\n <component-mapper\n *ngIf=\"caseTabs$.length > 1\"\n name=\"VerticalTabs\"\n [props]=\"{ tabConfig$: caseTabs$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ tabClick: onTabClick }\"\n ></component-mapper>\n </div>\n <div class=\"psdk-case-view-main\">\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages'\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngIf=\"!displayOnlyFA$\">\n <component-mapper name=\"DeferLoad\" [props]=\"{ pConn$, loadData$: tabData$, name: tabData$?.config?.name }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"!displayOnlyFA$\">\n <div *ngIf=\"arChildren$\" class=\"psdk-case-view-utilities\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--app-primary-dark-color);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;padding:0rem .3125rem 0rem 0rem;margin-left:.5rem;margin-top:.5rem;height:100%;background-color:var(--app-form-color)}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{width:21.875rem;float:left;padding:0rem .3125rem;height:100%}.psdk-case-view-divider{border-bottom:.0625rem solid var(--app-neutral-light-color)}.psdk-status{padding:.3125rem;background-color:var(--app-primary-color);color:var(--app-form-color);width:fit-content;margin:.625rem}button{margin:0rem .3125rem}\n"] }]
|
|
9287
9243
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: AngularPConnectService }, { type: Utils }], propDecorators: { pConn$: [{
|
|
9288
9244
|
type: Input
|
|
9289
9245
|
}], formGroup$: [{
|
|
@@ -9490,10 +9446,8 @@ class DataReferenceComponent {
|
|
|
9490
9446
|
handleSelection(event) {
|
|
9491
9447
|
const caseKey = this.pConn$.getCaseInfo().getKey();
|
|
9492
9448
|
const refreshOptions = { autoDetectRefresh: true };
|
|
9493
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
9494
9449
|
if (this.canBeChangedInReviewMode && this.pConn$.getValue('__currentPageTabViewName')) {
|
|
9495
|
-
|
|
9496
|
-
this.pConn$.getActionsApi().refreshCaseView(caseKey, this.pConn$.getValue('__currentPageTabViewName'), null, refreshOptions);
|
|
9450
|
+
this.pConn$.getActionsApi().refreshCaseView(caseKey, this.pConn$.getValue('__currentPageTabViewName'), '', refreshOptions);
|
|
9497
9451
|
PCore.getDeferLoadManager().refreshActiveComponents(this.pConn$.getContextName());
|
|
9498
9452
|
}
|
|
9499
9453
|
else {
|
|
@@ -10280,7 +10234,6 @@ class DynamicTabsComponent {
|
|
|
10280
10234
|
}
|
|
10281
10235
|
updateSelf() {
|
|
10282
10236
|
const { referenceList } = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
10283
|
-
// @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'
|
|
10284
10237
|
const { tablabel } = this.pConn$.getComponentConfig();
|
|
10285
10238
|
const tablabelProp = PCore.getAnnotationUtils().getPropertyName(tablabel);
|
|
10286
10239
|
this.pConn$.setInheritedProp('displayMode', 'LABELS_LEFT');
|
|
@@ -10419,22 +10372,12 @@ class FieldGroupTemplateComponent {
|
|
|
10419
10372
|
this.prevRefLength = this.referenceList.length;
|
|
10420
10373
|
}
|
|
10421
10374
|
addFieldGroupItem() {
|
|
10422
|
-
|
|
10423
|
-
|
|
10424
|
-
}
|
|
10425
|
-
else {
|
|
10426
|
-
// @ts-ignore - second parameter "pageRef" is optional for insert method
|
|
10427
|
-
this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length);
|
|
10428
|
-
}
|
|
10375
|
+
// @ts-ignore - second parameter "pageRef" is optional for insert method
|
|
10376
|
+
this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length);
|
|
10429
10377
|
}
|
|
10430
10378
|
deleteFieldGroupItem(index) {
|
|
10431
|
-
|
|
10432
|
-
|
|
10433
|
-
}
|
|
10434
|
-
else {
|
|
10435
|
-
// @ts-ignore - second parameter "pageRef" is optional for deleteEntry method
|
|
10436
|
-
this.pConn$.getListActions().deleteEntry(index);
|
|
10437
|
-
}
|
|
10379
|
+
// @ts-ignore - second parameter "pageRef" is optional for deleteEntry method
|
|
10380
|
+
this.pConn$.getListActions().deleteEntry(index);
|
|
10438
10381
|
}
|
|
10439
10382
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FieldGroupTemplateComponent, deps: [{ token: AngularPConnectService }, { token: Utils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10440
10383
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FieldGroupTemplateComponent, isStandalone: true, selector: "app-field-group-template", inputs: { configProps$: "configProps$", pConn$: "pConn$", formGroup$: "formGroup$" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"field-group\">\n <h3 *ngIf=\"showLabel$\" className=\"label\" style=\"font-weight: bold\">\n {{ label$ }}\n </h3>\n <div *ngIf=\"readonlyMode; else editable\">\n <div *ngIf=\"children && children.length > 0\">\n <div *ngFor=\"let item of children; let i = index\">\n <component-mapper name=\"FieldGroupList\" [props]=\"{ heading: item.name, formGroup$, item }\"></component-mapper>\n </div>\n </div>\n </div>\n <ng-template #editable>\n <div *ngIf=\"children && children.length > 0\">\n <div *ngFor=\"let kid of children; let i = index\">\n <div class=\"header-div\">\n <div style=\"width: 80%\">\n <b>{{ kid.name }}</b>\n </div>\n <div *ngIf=\"allowAddEdit !== false\" style=\"width: 20%; text-align: right\">\n <button id=\"delete-button\" mat-icon-button (click)=\"deleteFieldGroupItem(i)\">\n <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ menuIconOverride$ }}\" />\n </button>\n </div>\n </div>\n\n <div *ngIf=\"kid.children.getPConnect().getRawMetadata().type.toLowerCase() == 'region'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.children.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <button *ngIf=\"allowAddEdit !== false\" mat-button color=\"primary\" style=\"font-size: 16px\" (click)=\"addFieldGroupItem()\">+ Add</button>\n </div>\n </ng-template>\n</div>\n", styles: [".psdk-utility-card-action-svg-icon{width:1.4rem}.header-div{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3$1.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => i3$1.MatIconButton), selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
@@ -11407,7 +11350,6 @@ function useInit(props) {
|
|
|
11407
11350
|
const runtimeParams = PCore.getRuntimeParamsAPI().getRuntimeParams();
|
|
11408
11351
|
let selectionCountThreshold;
|
|
11409
11352
|
// promise to fetch metadata
|
|
11410
|
-
// @ts-ignore - 3rd parameter "associationFilter" should be optional for getDataViewMetadata method
|
|
11411
11353
|
const metaDataPromise = PCore.getAnalyticsUtils().getDataViewMetadata(referenceList, showDynamicFields);
|
|
11412
11354
|
const promisesArray = [metaDataPromise];
|
|
11413
11355
|
// promise to fetch report configured columns
|
|
@@ -11523,6 +11465,7 @@ class ListViewComponent {
|
|
|
11523
11465
|
this.filterOnSvgIcon$ = this.utils.getImageSrc('filter-on', this.utils.getSDKStaticContentUrl());
|
|
11524
11466
|
this.groupBySvgIcon$ = this.utils.getImageSrc('row', this.utils.getSDKStaticContentUrl());
|
|
11525
11467
|
this.selectionMode = this.configProps$.selectionMode;
|
|
11468
|
+
this.checkBoxValue = this.configProps$.value;
|
|
11526
11469
|
this.arFilterMainButtons$.push({ actionID: 'submit', jsAction: 'submit', name: 'Submit' });
|
|
11527
11470
|
this.arFilterSecondaryButtons$.push({ actionID: 'cancel', jsAction: 'cancel', name: 'Cancel' });
|
|
11528
11471
|
this.searchIcon$ = this.utils.getImageSrc('search', this.utils.getSDKStaticContentUrl());
|
|
@@ -11664,7 +11607,6 @@ class ListViewComponent {
|
|
|
11664
11607
|
return PCore.getAnalyticsUtils().getDataViewMetadata(refList, this.showDynamicFields);
|
|
11665
11608
|
}
|
|
11666
11609
|
getListData() {
|
|
11667
|
-
// @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'
|
|
11668
11610
|
const componentConfig = this.pConn$.getComponentConfig();
|
|
11669
11611
|
if (this.configProps$) {
|
|
11670
11612
|
this.preparePayload();
|
|
@@ -11674,8 +11616,7 @@ class ListViewComponent {
|
|
|
11674
11616
|
const payload = this.payload || this.filterPayload || {};
|
|
11675
11617
|
const dataViewParameters = this.payload.parameters;
|
|
11676
11618
|
const workListDataPromise = !this.bInForm$
|
|
11677
|
-
?
|
|
11678
|
-
PCore.getDataApiUtils().getData(refList, payload)
|
|
11619
|
+
? PCore.getDataApiUtils().getData(refList, payload)
|
|
11679
11620
|
: PCore.getDataPageUtils().getDataAsync(refList, this.pConn$.getContextName(), payload.dataViewParameters ? payload.dataViewParameters : dataViewParameters, this.paging, this.query);
|
|
11680
11621
|
this.bShowFilterPopover$ = false;
|
|
11681
11622
|
this.psService.sendMessage(true);
|
|
@@ -11787,6 +11728,12 @@ class ListViewComponent {
|
|
|
11787
11728
|
this.repeatList$.paginator.firstPage();
|
|
11788
11729
|
}
|
|
11789
11730
|
}
|
|
11731
|
+
isChecked(rowIn) {
|
|
11732
|
+
const initialVal = false;
|
|
11733
|
+
return this.configProps$?.readonlyContextList?.reduce((acc, currRow) => {
|
|
11734
|
+
return acc || rowIn[this.rowID] === currRow[this.rowID];
|
|
11735
|
+
}, initialVal);
|
|
11736
|
+
}
|
|
11790
11737
|
fieldOnChange(row) {
|
|
11791
11738
|
const value = row[this.rowID];
|
|
11792
11739
|
const reqObj = {};
|
|
@@ -11800,6 +11747,7 @@ class ListViewComponent {
|
|
|
11800
11747
|
else {
|
|
11801
11748
|
reqObj[this.rowID] = value;
|
|
11802
11749
|
}
|
|
11750
|
+
this.checkBoxValue = value;
|
|
11803
11751
|
this.pConn$?.getListActions?.()?.setSelectedRows([reqObj]);
|
|
11804
11752
|
}
|
|
11805
11753
|
onCheckboxClick(row, event) {
|
|
@@ -12580,7 +12528,7 @@ class ListViewComponent {
|
|
|
12580
12528
|
return select;
|
|
12581
12529
|
}
|
|
12582
12530
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ListViewComponent, deps: [{ token: ProgressSpinnerService }, { token: Utils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12583
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ListViewComponent, isStandalone: true, selector: "app-list-view", inputs: { pConn$: "pConn$", bInForm$: "bInForm$", payload: "payload" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div class=\"psdk-list-header\">\n <div>\n <mat-form-field class=\"psdk-search\" *ngIf=\"bShowSearch$\">\n <mat-label><img class=\"psdk-icon-search\" src=\"{{ searchIcon$ }}\" /> <span class=\"psdk-search-label\">Search</span> </mat-label>\n <input matInput id=\"search\" (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <div *ngIf=\"!bInForm$\" class=\"psdk-outer-div-in-form\">\n <div class=\"psdk-inner-div-in-form\" *ngIf=\"bColumnReorder$\">\n <div>\n <table\n mat-table\n id=\"list-view\"\n [dataSource]=\"repeatList$\"\n matSort\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\" cdkDrag>\n {{ dCol.config.label }}\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div class=\"psdk-mat-header-arrow\">\n <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n </div>\n <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element; index as i\">\n <button\n *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n mat-button\n color=\"primary\"\n (click)=\"_listViewClick(dCol.config, element)\"\n >\n {{ element[dCol.config.name] || '---' }}\n </button>\n <ng-template #regular>\n {{ element[dCol.config.name] || '---' }}\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n <!-- Group header -->\n <ng-container matColumnDef=\"groupHeader\">\n <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n <strong\n >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n group.totalCounts\n }})</strong\n >\n </td>\n </ng-container>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n </table>\n </div>\n </div>\n <div class=\"psdk-inner-div-in-form\" *ngIf=\"!bColumnReorder$\">\n <div>\n <table mat-table id=\"list-view\" [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n {{ dCol.config.label }}\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div class=\"psdk-mat-header-arrow\">\n <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n </div>\n <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element; index as i\">\n <button\n *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n mat-button\n color=\"primary\"\n (click)=\"_listViewClick(dCol.config, element)\"\n >\n {{ element[dCol.config.name] || '---' }}\n </button>\n <ng-template #regular>\n {{ element[dCol.config.name] || '---' }}\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n <!-- Group header -->\n <ng-container matColumnDef=\"groupHeader\">\n <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n <strong\n >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n group.totalCounts\n }})</strong\n >\n </td>\n </ng-container>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n </table>\n </div>\n </div>\n </div>\n <div *ngIf=\"bInForm$\">\n <div>\n <div class=\"psdk-inner-div-in-form\">\n <table id=\"list-view\" *ngIf=\"repeatListData.length > 0\" mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngIf=\"singleSelectionMode\" matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-radio-button [value]=\"row[rowID]\" (change)=\"fieldOnChange(row)\"></mat-radio-button>\n </td>\n </ng-container>\n <ng-container *ngIf=\"multiSelectionMode\" matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox [value]=\"row[rowID]\" (change)=\"onCheckboxClick(row, $event)\"></mat-checkbox>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n {{ dCol.config.label }}\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.config.name] || '---' }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n </table>\n <div *ngIf=\"repeatListData?.length === 0\">\n <table id=\"list-view\" *ngIf=\"repeatListData?.length === 0\" mat-table [dataSource]=\"repeatList$\">\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef>{{ dCol.config.label }}</th>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n </table>\n </div>\n <div class=\"psdk-no-records\" *ngIf=\"repeatListData?.length === 0\">No Records Found.</div>\n </div>\n </div>\n </div>\n\n <mat-paginator id=\"pagination\" *ngIf=\"bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500, 1000]\" showFirstLastButtons></mat-paginator>\n <mat-paginator id=\"pagination\" *ngIf=\"!bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n </div>\n\n <!-- pop overs for filters-->\n <div *ngIf=\"bShowFilterPopover$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-file-top\">\n <h4>\n Filter:<b> {{ filterContainsLabel$ }}</b>\n </h4>\n <div *ngIf=\"bContains$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"contains\">Contains</mat-option>\n <mat-option value=\"equals\">Equals</mat-option>\n <mat-option value=\"startswith\">Starts with</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"psdk-full-width\">\n <input matInput type=\"text\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsValue($event)\" />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"bDateTime$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"notequal\">is not equal to</mat-option>\n <mat-option value=\"after\">after</mat-option>\n <mat-option value=\"before\">before</mat-option>\n <mat-option value=\"null\">is null</mat-option>\n <mat-option value=\"notnull\">is not null</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDate$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date</mat-label>\n <input\n matInput\n #dateInput\n [matDatepicker]=\"pegadate\"\n type=\"text\"\n [value]=\"filterContainsValue$\"\n (dateChange)=\"_filterContainsDateValue($event, dateInput.value)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"filterContainsValue$\"></mat-datepicker>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDateTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date time</mat-label>\n <input matInput type=\"datetime-local\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsDateTimeValue($event)\" />\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Time</mat-label>\n <input matInput type=\"time\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsTimeValue($event)\" />\n </mat-form-field>\n </div>\n\n <component-mapper\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$: arFilterMainButtons$, arSecondaryButtons$: arFilterSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: _onFilterActionButtonClick }\"\n ></component-mapper>\n </div>\n </div>\n</div>\n", styles: [".psdk-list-header{background-color:var(--app-form-color);padding:1rem;margin:.5rem;border-radius:.6125rem}table{width:100%}::ng-deep .mat-sort-header-content{white-space:nowrap}::ng-deep td.mat-mdc-cell{white-space:nowrap}::ng-deep th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding:0rem .188rem}::ng-deep .mat-mdc-button{padding:0;text-align:left}.mat-mdc-icon-button{width:fit-content}.mat-mdc-row .mat-mdc-cell{text-align:left}.psdk-mat-header{white-space:nowrap;padding-right:5px}.psdk-mat-header-button{display:inline-grid}.psdk-mat-header-arrow,.psdk-mat-header-filter{display:inline-grid;vertical-align:middle}.psdk-full-width{width:100%}.psdk-search{padding-left:.625rem;padding-right:.625rem}.psdk-icon-search{vertical-align:sub;padding:.125rem;min-width:unset;width:1.1rem}.psdk-outer-div-in-form{padding:1rem;overflow:hidden}.psdk-inner-div-in-form{height:auto;position:relative;width:100%;overflow:auto;max-height:550px;min-height:auto}.psdk-list-view-svg-icon{width:1.4rem;display:inline-block;vertical-align:middle;filter:var(--app-primary-color-filter)}.psdk-filter-svg-icon,.psdk-arrow-svg-icon{width:1rem;display:inline-block;vertical-align:middle;filter:var(--app-neutral-color-filter)}.psdk-filter-popover{display:table;margin:auto;min-width:100px;background-color:var(--app-form-color);border:1px solid var(--app-inverse-form-color);border-radius:10px;padding:20px;box-shadow:0 0 10px 3px var(--app-box-shadow-color);position:absolute;z-index:99}.psdk-dialog-background{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-dialog-background-color);position:fixed;z-index:999;top:0;left:0}.psdk-modal-file-top{display:table;margin:auto;min-width:150px;background-color:var(--app-form-color);border:1px solid var(--app-inverse-form-color);border-radius:10px;padding:20px;box-shadow:0 0 10px 3px var(--app-box-shadow-color)}.psdk-no-records{height:56px;justify-content:center;display:flex;align-items:center;border:1px solid var(--app-neutral-light-color);border-top:none}.psdk-table-field-link{color:var(--app-primary-color);padding:0;cursor:pointer;border:0;background-color:transparent;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => i5.MatFormField), selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i0.forwardRef(() => i5.MatLabel), selector: "mat-label" }, { kind: "directive", type: i0.forwardRef(() => i5.MatSuffix), selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatInputModule) }, { kind: "directive", type: i0.forwardRef(() => i6$2.MatInput), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatTableModule) }, { kind: "component", type: i0.forwardRef(() => i6$4.MatTable), selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatHeaderCellDef), selector: "[matHeaderCellDef]" }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatHeaderRowDef), selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatColumnDef), selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatCellDef), selector: "[matCellDef]" }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatRowDef), selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatHeaderCell), selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatCell), selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i0.forwardRef(() => i6$4.MatHeaderRow), selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i0.forwardRef(() => i6$4.MatRow), selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatSortModule) }, { kind: "directive", type: i0.forwardRef(() => i7$2.MatSort), selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i0.forwardRef(() => i7$2.MatSortHeader), selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: i0.forwardRef(() => DragDropModule) }, { kind: "directive", type: i0.forwardRef(() => i8$2.CdkDropList), selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i0.forwardRef(() => i8$2.CdkDrag), selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3$1.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => i3$1.MatIconButton), selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatMenuModule) }, { kind: "component", type: i0.forwardRef(() => i6$1.MatMenu), selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i0.forwardRef(() => i6$1.MatMenuItem), selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i0.forwardRef(() => i6$1.MatMenuTrigger), selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatIconModule) }, { kind: "component", type: i0.forwardRef(() => i2$2.MatIcon), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatRadioModule) }, { kind: "component", type: i0.forwardRef(() => i7$1.MatRadioButton), selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatCheckboxModule) }, { kind: "component", type: i0.forwardRef(() => i5$2.MatCheckbox), selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatPaginatorModule) }, { kind: "component", type: i0.forwardRef(() => i14.MatPaginator), selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatSelectModule) }, { kind: "component", type: i0.forwardRef(() => i6$3.MatSelect), selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i0.forwardRef(() => i7.MatOption), selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatOptionModule) }, { kind: "ngmodule", type: i0.forwardRef(() => MatDatepickerModule) }, { kind: "component", type: i0.forwardRef(() => i4$2.MatDatepicker), selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i0.forwardRef(() => i4$2.MatDatepickerInput), selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i0.forwardRef(() => i4$2.MatDatepickerToggle), selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
12531
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ListViewComponent, isStandalone: true, selector: "app-list-view", inputs: { pConn$: "pConn$", bInForm$: "bInForm$", payload: "payload" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div class=\"psdk-list-header\">\n <div>\n <mat-form-field class=\"psdk-search\" *ngIf=\"bShowSearch$\">\n <mat-label><img class=\"psdk-icon-search\" src=\"{{ searchIcon$ }}\" /> <span class=\"psdk-search-label\">Search</span> </mat-label>\n <input matInput id=\"search\" (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <div *ngIf=\"!bInForm$\" class=\"psdk-outer-div-in-form\">\n <div class=\"psdk-inner-div-in-form\" *ngIf=\"bColumnReorder$\">\n <div>\n <table\n mat-table\n id=\"list-view\"\n [dataSource]=\"repeatList$\"\n matSort\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\" cdkDrag>\n {{ dCol.config.label }}\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div class=\"psdk-mat-header-arrow\">\n <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n </div>\n <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element; index as i\">\n <button\n *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n mat-button\n color=\"primary\"\n (click)=\"_listViewClick(dCol.config, element)\"\n >\n {{ element[dCol.config.name] || '---' }}\n </button>\n <ng-template #regular>\n {{ element[dCol.config.name] || '---' }}\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n <!-- Group header -->\n <ng-container matColumnDef=\"groupHeader\">\n <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n <strong\n >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n group.totalCounts\n }})</strong\n >\n </td>\n </ng-container>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n </table>\n </div>\n </div>\n <div class=\"psdk-inner-div-in-form\" *ngIf=\"!bColumnReorder$\">\n <div>\n <table mat-table id=\"list-view\" [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n {{ dCol.config.label }}\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div class=\"psdk-mat-header-arrow\">\n <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n </div>\n <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element; index as i\">\n <button\n *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n mat-button\n color=\"primary\"\n (click)=\"_listViewClick(dCol.config, element)\"\n >\n {{ element[dCol.config.name] || '---' }}\n </button>\n <ng-template #regular>\n {{ element[dCol.config.name] || '---' }}\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n <!-- Group header -->\n <ng-container matColumnDef=\"groupHeader\">\n <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n <strong\n >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n group.totalCounts\n }})</strong\n >\n </td>\n </ng-container>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n </table>\n </div>\n </div>\n </div>\n <div *ngIf=\"bInForm$\">\n <div>\n <div class=\"psdk-inner-div-in-form\">\n <table id=\"list-view\" *ngIf=\"repeatListData.length > 0\" mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngIf=\"singleSelectionMode\" matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-radio-button [value]=\"row[rowID]\" [checked]=\"row[rowID] === checkBoxValue\" (change)=\"fieldOnChange(row)\"></mat-radio-button>\n </td>\n </ng-container>\n <ng-container *ngIf=\"multiSelectionMode\" matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox [value]=\"row[rowID]\" [checked]=\"isChecked(row)\" (change)=\"onCheckboxClick(row, $event)\"></mat-checkbox>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n {{ dCol.config.label }}\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.config.name] || '---' }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n </table>\n <div *ngIf=\"repeatListData?.length === 0\">\n <table id=\"list-view\" *ngIf=\"repeatListData?.length === 0\" mat-table [dataSource]=\"repeatList$\">\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef>{{ dCol.config.label }}</th>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n </table>\n </div>\n <div class=\"psdk-no-records\" *ngIf=\"repeatListData?.length === 0\">No Records Found.</div>\n </div>\n </div>\n </div>\n\n <mat-paginator id=\"pagination\" *ngIf=\"bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500, 1000]\" showFirstLastButtons></mat-paginator>\n <mat-paginator id=\"pagination\" *ngIf=\"!bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n </div>\n\n <!-- pop overs for filters-->\n <div *ngIf=\"bShowFilterPopover$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-file-top\">\n <h4>\n Filter:<b> {{ filterContainsLabel$ }}</b>\n </h4>\n <div *ngIf=\"bContains$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"contains\">Contains</mat-option>\n <mat-option value=\"equals\">Equals</mat-option>\n <mat-option value=\"startswith\">Starts with</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"psdk-full-width\">\n <input matInput type=\"text\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsValue($event)\" />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"bDateTime$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"notequal\">is not equal to</mat-option>\n <mat-option value=\"after\">after</mat-option>\n <mat-option value=\"before\">before</mat-option>\n <mat-option value=\"null\">is null</mat-option>\n <mat-option value=\"notnull\">is not null</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDate$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date</mat-label>\n <input\n matInput\n #dateInput\n [matDatepicker]=\"pegadate\"\n type=\"text\"\n [value]=\"filterContainsValue$\"\n (dateChange)=\"_filterContainsDateValue($event, dateInput.value)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"filterContainsValue$\"></mat-datepicker>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDateTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date time</mat-label>\n <input matInput type=\"datetime-local\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsDateTimeValue($event)\" />\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Time</mat-label>\n <input matInput type=\"time\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsTimeValue($event)\" />\n </mat-form-field>\n </div>\n\n <component-mapper\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$: arFilterMainButtons$, arSecondaryButtons$: arFilterSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: _onFilterActionButtonClick }\"\n ></component-mapper>\n </div>\n </div>\n</div>\n", styles: [".psdk-list-header{background-color:var(--app-form-color);padding:1rem;margin:.5rem;border-radius:.6125rem}table{width:100%}::ng-deep .mat-sort-header-content{white-space:nowrap}::ng-deep td.mat-mdc-cell{white-space:nowrap}::ng-deep th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding:0rem .188rem}::ng-deep .mat-mdc-button{padding:0;text-align:left}.mat-mdc-icon-button{width:fit-content}.mat-mdc-row .mat-mdc-cell{text-align:left}.psdk-mat-header{white-space:nowrap;padding-right:5px}.psdk-mat-header-button{display:inline-grid}.psdk-mat-header-arrow,.psdk-mat-header-filter{display:inline-grid;vertical-align:middle}.psdk-full-width{width:100%}.psdk-search{padding-left:.625rem;padding-right:.625rem}.psdk-icon-search{vertical-align:sub;padding:.125rem;min-width:unset;width:1.1rem}.psdk-outer-div-in-form{padding:1rem;overflow:hidden}.psdk-inner-div-in-form{height:auto;position:relative;width:100%;overflow:auto;max-height:550px;min-height:auto}.psdk-list-view-svg-icon{width:1.4rem;display:inline-block;vertical-align:middle;filter:var(--app-primary-color-filter)}.psdk-filter-svg-icon,.psdk-arrow-svg-icon{width:1rem;display:inline-block;vertical-align:middle;filter:var(--app-neutral-color-filter)}.psdk-filter-popover{display:table;margin:auto;min-width:100px;background-color:var(--app-form-color);border:1px solid var(--app-inverse-form-color);border-radius:10px;padding:20px;box-shadow:0 0 10px 3px var(--app-box-shadow-color);position:absolute;z-index:99}.psdk-dialog-background{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-dialog-background-color);position:fixed;z-index:999;top:0;left:0}.psdk-modal-file-top{display:table;margin:auto;min-width:150px;background-color:var(--app-form-color);border:1px solid var(--app-inverse-form-color);border-radius:10px;padding:20px;box-shadow:0 0 10px 3px var(--app-box-shadow-color)}.psdk-no-records{height:56px;justify-content:center;display:flex;align-items:center;border:1px solid var(--app-neutral-light-color);border-top:none}.psdk-table-field-link{color:var(--app-primary-color);padding:0;cursor:pointer;border:0;background-color:transparent;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => i5.MatFormField), selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i0.forwardRef(() => i5.MatLabel), selector: "mat-label" }, { kind: "directive", type: i0.forwardRef(() => i5.MatSuffix), selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatInputModule) }, { kind: "directive", type: i0.forwardRef(() => i6$2.MatInput), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatTableModule) }, { kind: "component", type: i0.forwardRef(() => i6$4.MatTable), selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatHeaderCellDef), selector: "[matHeaderCellDef]" }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatHeaderRowDef), selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatColumnDef), selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatCellDef), selector: "[matCellDef]" }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatRowDef), selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatHeaderCell), selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i0.forwardRef(() => i6$4.MatCell), selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i0.forwardRef(() => i6$4.MatHeaderRow), selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i0.forwardRef(() => i6$4.MatRow), selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatSortModule) }, { kind: "directive", type: i0.forwardRef(() => i7$2.MatSort), selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i0.forwardRef(() => i7$2.MatSortHeader), selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: i0.forwardRef(() => DragDropModule) }, { kind: "directive", type: i0.forwardRef(() => i8$2.CdkDropList), selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i0.forwardRef(() => i8$2.CdkDrag), selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3$1.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => i3$1.MatIconButton), selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatMenuModule) }, { kind: "component", type: i0.forwardRef(() => i6$1.MatMenu), selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i0.forwardRef(() => i6$1.MatMenuItem), selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i0.forwardRef(() => i6$1.MatMenuTrigger), selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatIconModule) }, { kind: "component", type: i0.forwardRef(() => i2$2.MatIcon), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatRadioModule) }, { kind: "component", type: i0.forwardRef(() => i7$1.MatRadioButton), selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatCheckboxModule) }, { kind: "component", type: i0.forwardRef(() => i5$2.MatCheckbox), selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatPaginatorModule) }, { kind: "component", type: i0.forwardRef(() => i14.MatPaginator), selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatSelectModule) }, { kind: "component", type: i0.forwardRef(() => i6$3.MatSelect), selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i0.forwardRef(() => i7.MatOption), selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatOptionModule) }, { kind: "ngmodule", type: i0.forwardRef(() => MatDatepickerModule) }, { kind: "component", type: i0.forwardRef(() => i4$2.MatDatepicker), selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i0.forwardRef(() => i4$2.MatDatepickerInput), selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i0.forwardRef(() => i4$2.MatDatepickerToggle), selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
12584
12532
|
}
|
|
12585
12533
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ListViewComponent, decorators: [{
|
|
12586
12534
|
type: Component,
|
|
@@ -12603,7 +12551,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
12603
12551
|
MatOptionModule,
|
|
12604
12552
|
MatDatepickerModule,
|
|
12605
12553
|
forwardRef(() => ComponentMapperComponent)
|
|
12606
|
-
], template: "<div class=\"psdk-list-header\">\n <div>\n <mat-form-field class=\"psdk-search\" *ngIf=\"bShowSearch$\">\n <mat-label><img class=\"psdk-icon-search\" src=\"{{ searchIcon$ }}\" /> <span class=\"psdk-search-label\">Search</span> </mat-label>\n <input matInput id=\"search\" (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <div *ngIf=\"!bInForm$\" class=\"psdk-outer-div-in-form\">\n <div class=\"psdk-inner-div-in-form\" *ngIf=\"bColumnReorder$\">\n <div>\n <table\n mat-table\n id=\"list-view\"\n [dataSource]=\"repeatList$\"\n matSort\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\" cdkDrag>\n {{ dCol.config.label }}\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div class=\"psdk-mat-header-arrow\">\n <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n </div>\n <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element; index as i\">\n <button\n *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n mat-button\n color=\"primary\"\n (click)=\"_listViewClick(dCol.config, element)\"\n >\n {{ element[dCol.config.name] || '---' }}\n </button>\n <ng-template #regular>\n {{ element[dCol.config.name] || '---' }}\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n <!-- Group header -->\n <ng-container matColumnDef=\"groupHeader\">\n <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n <strong\n >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n group.totalCounts\n }})</strong\n >\n </td>\n </ng-container>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n </table>\n </div>\n </div>\n <div class=\"psdk-inner-div-in-form\" *ngIf=\"!bColumnReorder$\">\n <div>\n <table mat-table id=\"list-view\" [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n {{ dCol.config.label }}\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div class=\"psdk-mat-header-arrow\">\n <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n </div>\n <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element; index as i\">\n <button\n *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n mat-button\n color=\"primary\"\n (click)=\"_listViewClick(dCol.config, element)\"\n >\n {{ element[dCol.config.name] || '---' }}\n </button>\n <ng-template #regular>\n {{ element[dCol.config.name] || '---' }}\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n <!-- Group header -->\n <ng-container matColumnDef=\"groupHeader\">\n <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n <strong\n >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n group.totalCounts\n }})</strong\n >\n </td>\n </ng-container>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n </table>\n </div>\n </div>\n </div>\n <div *ngIf=\"bInForm$\">\n <div>\n <div class=\"psdk-inner-div-in-form\">\n <table id=\"list-view\" *ngIf=\"repeatListData.length > 0\" mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngIf=\"singleSelectionMode\" matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-radio-button [value]=\"row[rowID]\" (change)=\"fieldOnChange(row)\"></mat-radio-button>\n </td>\n </ng-container>\n <ng-container *ngIf=\"multiSelectionMode\" matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox [value]=\"row[rowID]\" (change)=\"onCheckboxClick(row, $event)\"></mat-checkbox>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n {{ dCol.config.label }}\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.config.name] || '---' }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n </table>\n <div *ngIf=\"repeatListData?.length === 0\">\n <table id=\"list-view\" *ngIf=\"repeatListData?.length === 0\" mat-table [dataSource]=\"repeatList$\">\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef>{{ dCol.config.label }}</th>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n </table>\n </div>\n <div class=\"psdk-no-records\" *ngIf=\"repeatListData?.length === 0\">No Records Found.</div>\n </div>\n </div>\n </div>\n\n <mat-paginator id=\"pagination\" *ngIf=\"bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500, 1000]\" showFirstLastButtons></mat-paginator>\n <mat-paginator id=\"pagination\" *ngIf=\"!bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n </div>\n\n <!-- pop overs for filters-->\n <div *ngIf=\"bShowFilterPopover$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-file-top\">\n <h4>\n Filter:<b> {{ filterContainsLabel$ }}</b>\n </h4>\n <div *ngIf=\"bContains$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"contains\">Contains</mat-option>\n <mat-option value=\"equals\">Equals</mat-option>\n <mat-option value=\"startswith\">Starts with</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"psdk-full-width\">\n <input matInput type=\"text\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsValue($event)\" />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"bDateTime$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"notequal\">is not equal to</mat-option>\n <mat-option value=\"after\">after</mat-option>\n <mat-option value=\"before\">before</mat-option>\n <mat-option value=\"null\">is null</mat-option>\n <mat-option value=\"notnull\">is not null</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDate$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date</mat-label>\n <input\n matInput\n #dateInput\n [matDatepicker]=\"pegadate\"\n type=\"text\"\n [value]=\"filterContainsValue$\"\n (dateChange)=\"_filterContainsDateValue($event, dateInput.value)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"filterContainsValue$\"></mat-datepicker>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDateTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date time</mat-label>\n <input matInput type=\"datetime-local\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsDateTimeValue($event)\" />\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Time</mat-label>\n <input matInput type=\"time\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsTimeValue($event)\" />\n </mat-form-field>\n </div>\n\n <component-mapper\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$: arFilterMainButtons$, arSecondaryButtons$: arFilterSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: _onFilterActionButtonClick }\"\n ></component-mapper>\n </div>\n </div>\n</div>\n", styles: [".psdk-list-header{background-color:var(--app-form-color);padding:1rem;margin:.5rem;border-radius:.6125rem}table{width:100%}::ng-deep .mat-sort-header-content{white-space:nowrap}::ng-deep td.mat-mdc-cell{white-space:nowrap}::ng-deep th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding:0rem .188rem}::ng-deep .mat-mdc-button{padding:0;text-align:left}.mat-mdc-icon-button{width:fit-content}.mat-mdc-row .mat-mdc-cell{text-align:left}.psdk-mat-header{white-space:nowrap;padding-right:5px}.psdk-mat-header-button{display:inline-grid}.psdk-mat-header-arrow,.psdk-mat-header-filter{display:inline-grid;vertical-align:middle}.psdk-full-width{width:100%}.psdk-search{padding-left:.625rem;padding-right:.625rem}.psdk-icon-search{vertical-align:sub;padding:.125rem;min-width:unset;width:1.1rem}.psdk-outer-div-in-form{padding:1rem;overflow:hidden}.psdk-inner-div-in-form{height:auto;position:relative;width:100%;overflow:auto;max-height:550px;min-height:auto}.psdk-list-view-svg-icon{width:1.4rem;display:inline-block;vertical-align:middle;filter:var(--app-primary-color-filter)}.psdk-filter-svg-icon,.psdk-arrow-svg-icon{width:1rem;display:inline-block;vertical-align:middle;filter:var(--app-neutral-color-filter)}.psdk-filter-popover{display:table;margin:auto;min-width:100px;background-color:var(--app-form-color);border:1px solid var(--app-inverse-form-color);border-radius:10px;padding:20px;box-shadow:0 0 10px 3px var(--app-box-shadow-color);position:absolute;z-index:99}.psdk-dialog-background{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-dialog-background-color);position:fixed;z-index:999;top:0;left:0}.psdk-modal-file-top{display:table;margin:auto;min-width:150px;background-color:var(--app-form-color);border:1px solid var(--app-inverse-form-color);border-radius:10px;padding:20px;box-shadow:0 0 10px 3px var(--app-box-shadow-color)}.psdk-no-records{height:56px;justify-content:center;display:flex;align-items:center;border:1px solid var(--app-neutral-light-color);border-top:none}.psdk-table-field-link{color:var(--app-primary-color);padding:0;cursor:pointer;border:0;background-color:transparent;align-items:center}\n"] }]
|
|
12554
|
+
], template: "<div class=\"psdk-list-header\">\n <div>\n <mat-form-field class=\"psdk-search\" *ngIf=\"bShowSearch$\">\n <mat-label><img class=\"psdk-icon-search\" src=\"{{ searchIcon$ }}\" /> <span class=\"psdk-search-label\">Search</span> </mat-label>\n <input matInput id=\"search\" (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <div *ngIf=\"!bInForm$\" class=\"psdk-outer-div-in-form\">\n <div class=\"psdk-inner-div-in-form\" *ngIf=\"bColumnReorder$\">\n <div>\n <table\n mat-table\n id=\"list-view\"\n [dataSource]=\"repeatList$\"\n matSort\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\" cdkDrag>\n {{ dCol.config.label }}\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div class=\"psdk-mat-header-arrow\">\n <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n </div>\n <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element; index as i\">\n <button\n *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n mat-button\n color=\"primary\"\n (click)=\"_listViewClick(dCol.config, element)\"\n >\n {{ element[dCol.config.name] || '---' }}\n </button>\n <ng-template #regular>\n {{ element[dCol.config.name] || '---' }}\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n <!-- Group header -->\n <ng-container matColumnDef=\"groupHeader\">\n <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n <strong\n >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n group.totalCounts\n }})</strong\n >\n </td>\n </ng-container>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n </table>\n </div>\n </div>\n <div class=\"psdk-inner-div-in-form\" *ngIf=\"!bColumnReorder$\">\n <div>\n <table mat-table id=\"list-view\" [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n {{ dCol.config.label }}\n <div class=\"psdk-mat-header-filter\">\n <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n </div>\n <div class=\"psdk-mat-header-arrow\">\n <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n </div>\n <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n </button>\n <mat-menu #groupMenu>\n <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n </button>\n <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n </button>\n <button mat-menu-item (click)=\"_filter($event, dCol)\">\n <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n </button>\n </mat-menu>\n </div>\n </th>\n <td mat-cell *matCellDef=\"let element; index as i\">\n <button\n *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n mat-button\n color=\"primary\"\n (click)=\"_listViewClick(dCol.config, element)\"\n >\n {{ element[dCol.config.name] || '---' }}\n </button>\n <ng-template #regular>\n {{ element[dCol.config.name] || '---' }}\n </ng-template>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n <!-- Group header -->\n <ng-container matColumnDef=\"groupHeader\">\n <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n <strong\n >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n group.totalCounts\n }})</strong\n >\n </td>\n </ng-container>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n </table>\n </div>\n </div>\n </div>\n <div *ngIf=\"bInForm$\">\n <div>\n <div class=\"psdk-inner-div-in-form\">\n <table id=\"list-view\" *ngIf=\"repeatListData.length > 0\" mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngIf=\"singleSelectionMode\" matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-radio-button [value]=\"row[rowID]\" [checked]=\"row[rowID] === checkBoxValue\" (change)=\"fieldOnChange(row)\"></mat-radio-button>\n </td>\n </ng-container>\n <ng-container *ngIf=\"multiSelectionMode\" matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox [value]=\"row[rowID]\" [checked]=\"isChecked(row)\" (change)=\"onCheckboxClick(row, $event)\"></mat-checkbox>\n </td>\n </ng-container>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n {{ dCol.config.label }}\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.config.name] || '---' }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n </table>\n <div *ngIf=\"repeatListData?.length === 0\">\n <table id=\"list-view\" *ngIf=\"repeatListData?.length === 0\" mat-table [dataSource]=\"repeatList$\">\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n <th mat-header-cell *matHeaderCellDef>{{ dCol.config.label }}</th>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n </table>\n </div>\n <div class=\"psdk-no-records\" *ngIf=\"repeatListData?.length === 0\">No Records Found.</div>\n </div>\n </div>\n </div>\n\n <mat-paginator id=\"pagination\" *ngIf=\"bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500, 1000]\" showFirstLastButtons></mat-paginator>\n <mat-paginator id=\"pagination\" *ngIf=\"!bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n </div>\n\n <!-- pop overs for filters-->\n <div *ngIf=\"bShowFilterPopover$\" class=\"psdk-dialog-background\">\n <div class=\"psdk-modal-file-top\">\n <h4>\n Filter:<b> {{ filterContainsLabel$ }}</b>\n </h4>\n <div *ngIf=\"bContains$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"contains\">Contains</mat-option>\n <mat-option value=\"equals\">Equals</mat-option>\n <mat-option value=\"startswith\">Starts with</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"psdk-full-width\">\n <input matInput type=\"text\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsValue($event)\" />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"bDateTime$\">\n <mat-form-field class=\"psdk-full-width\">\n <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n <mat-option value=\"notequal\">is not equal to</mat-option>\n <mat-option value=\"after\">after</mat-option>\n <mat-option value=\"before\">before</mat-option>\n <mat-option value=\"null\">is null</mat-option>\n <mat-option value=\"notnull\">is not null</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDate$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date</mat-label>\n <input\n matInput\n #dateInput\n [matDatepicker]=\"pegadate\"\n type=\"text\"\n [value]=\"filterContainsValue$\"\n (dateChange)=\"_filterContainsDateValue($event, dateInput.value)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"filterContainsValue$\"></mat-datepicker>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsDateTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Date time</mat-label>\n <input matInput type=\"datetime-local\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsDateTimeValue($event)\" />\n </mat-form-field>\n\n <mat-form-field *ngIf=\"bIsTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n <mat-label>Time</mat-label>\n <input matInput type=\"time\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsTimeValue($event)\" />\n </mat-form-field>\n </div>\n\n <component-mapper\n name=\"ActionButtons\"\n [props]=\"{ arMainButtons$: arFilterMainButtons$, arSecondaryButtons$: arFilterSecondaryButtons$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ actionButtonClick: _onFilterActionButtonClick }\"\n ></component-mapper>\n </div>\n </div>\n</div>\n", styles: [".psdk-list-header{background-color:var(--app-form-color);padding:1rem;margin:.5rem;border-radius:.6125rem}table{width:100%}::ng-deep .mat-sort-header-content{white-space:nowrap}::ng-deep td.mat-mdc-cell{white-space:nowrap}::ng-deep th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding:0rem .188rem}::ng-deep .mat-mdc-button{padding:0;text-align:left}.mat-mdc-icon-button{width:fit-content}.mat-mdc-row .mat-mdc-cell{text-align:left}.psdk-mat-header{white-space:nowrap;padding-right:5px}.psdk-mat-header-button{display:inline-grid}.psdk-mat-header-arrow,.psdk-mat-header-filter{display:inline-grid;vertical-align:middle}.psdk-full-width{width:100%}.psdk-search{padding-left:.625rem;padding-right:.625rem}.psdk-icon-search{vertical-align:sub;padding:.125rem;min-width:unset;width:1.1rem}.psdk-outer-div-in-form{padding:1rem;overflow:hidden}.psdk-inner-div-in-form{height:auto;position:relative;width:100%;overflow:auto;max-height:550px;min-height:auto}.psdk-list-view-svg-icon{width:1.4rem;display:inline-block;vertical-align:middle;filter:var(--app-primary-color-filter)}.psdk-filter-svg-icon,.psdk-arrow-svg-icon{width:1rem;display:inline-block;vertical-align:middle;filter:var(--app-neutral-color-filter)}.psdk-filter-popover{display:table;margin:auto;min-width:100px;background-color:var(--app-form-color);border:1px solid var(--app-inverse-form-color);border-radius:10px;padding:20px;box-shadow:0 0 10px 3px var(--app-box-shadow-color);position:absolute;z-index:99}.psdk-dialog-background{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-dialog-background-color);position:fixed;z-index:999;top:0;left:0}.psdk-modal-file-top{display:table;margin:auto;min-width:150px;background-color:var(--app-form-color);border:1px solid var(--app-inverse-form-color);border-radius:10px;padding:20px;box-shadow:0 0 10px 3px var(--app-box-shadow-color)}.psdk-no-records{height:56px;justify-content:center;display:flex;align-items:center;border:1px solid var(--app-neutral-light-color);border-top:none}.psdk-table-field-link{color:var(--app-primary-color);padding:0;cursor:pointer;border:0;background-color:transparent;align-items:center}\n"] }]
|
|
12607
12555
|
}], ctorParameters: () => [{ type: ProgressSpinnerService }, { type: Utils }], propDecorators: { paginator: [{
|
|
12608
12556
|
type: ViewChild,
|
|
12609
12557
|
args: [MatPaginator]
|
|
@@ -13712,10 +13660,8 @@ class SimpleTableComponent {
|
|
|
13712
13660
|
const { multiRecordDisplayAs } = this.configProps$;
|
|
13713
13661
|
let { contextClass } = this.configProps$;
|
|
13714
13662
|
if (!contextClass) {
|
|
13715
|
-
// @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'
|
|
13716
13663
|
let listName = this.pConn$.getComponentConfig().referenceList;
|
|
13717
13664
|
listName = PCore.getAnnotationUtils().getPropertyName(listName);
|
|
13718
|
-
// @ts-ignore - Property 'getFieldMetadata' is private and only accessible within class 'C11nEnv'
|
|
13719
13665
|
contextClass = this.pConn$.getFieldMetadata(listName)?.pageClass;
|
|
13720
13666
|
}
|
|
13721
13667
|
if (multiRecordDisplayAs === 'fieldGroup') {
|
|
@@ -13876,10 +13822,8 @@ class SimpleTableManualComponent {
|
|
|
13876
13822
|
let { contextClass } = this.configProps$;
|
|
13877
13823
|
this.referenceList = referenceList;
|
|
13878
13824
|
if (!contextClass) {
|
|
13879
|
-
// @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'
|
|
13880
13825
|
let listName = this.pConn$.getComponentConfig().referenceList;
|
|
13881
13826
|
listName = PCore.getAnnotationUtils().getPropertyName(listName);
|
|
13882
|
-
// @ts-ignore - Property 'getFieldMetadata' is private and only accessible within class 'C11nEnv'
|
|
13883
13827
|
contextClass = this.pConn$.getFieldMetadata(listName)?.pageClass;
|
|
13884
13828
|
}
|
|
13885
13829
|
this.contextClass = contextClass;
|
|
@@ -13967,17 +13911,18 @@ class SimpleTableManualComponent {
|
|
|
13967
13911
|
if (this.isInitialized) {
|
|
13968
13912
|
this.isInitialized = false;
|
|
13969
13913
|
if (this.allowEditingInModal) {
|
|
13914
|
+
// @ts-ignore - An argument for 'uniqueField' was not provided.
|
|
13970
13915
|
this.pConn$.getListActions().initDefaultPageInstructions(this.pConn$.getReferenceList(), this.fieldDefs.filter(item => item.name).map(item => item.name));
|
|
13971
13916
|
}
|
|
13972
13917
|
else {
|
|
13973
|
-
// @ts-ignore - An argument for '
|
|
13918
|
+
// @ts-ignore - An argument for 'propertyNames' was not provided.
|
|
13974
13919
|
this.pConn$.getListActions().initDefaultPageInstructions(this.pConn$.getReferenceList());
|
|
13975
13920
|
}
|
|
13976
13921
|
}
|
|
13977
13922
|
}
|
|
13978
13923
|
getResultsText() {
|
|
13979
13924
|
const recordsCount = this.readOnlyMode ? this.rowData?.data.length : this.referenceList?.length;
|
|
13980
|
-
return `${recordsCount} result${recordsCount > 1 ? 's' : ''}`;
|
|
13925
|
+
return `${recordsCount || 0} result${recordsCount > 1 ? 's' : ''}`;
|
|
13981
13926
|
}
|
|
13982
13927
|
sortCompare(a, b) {
|
|
13983
13928
|
let aValue = a[this.compareRef];
|
|
@@ -14468,13 +14413,8 @@ class SimpleTableManualComponent {
|
|
|
14468
14413
|
}
|
|
14469
14414
|
}
|
|
14470
14415
|
deleteRecord(index) {
|
|
14471
|
-
|
|
14472
|
-
|
|
14473
|
-
}
|
|
14474
|
-
else {
|
|
14475
|
-
// @ts-ignore - second parameter "pageRef" is optional for deleteEntry method
|
|
14476
|
-
this.pConn$.getListActions().deleteEntry(index);
|
|
14477
|
-
}
|
|
14416
|
+
// @ts-ignore - second parameter "pageRef" is optional for deleteEntry method
|
|
14417
|
+
this.pConn$.getListActions().deleteEntry(index);
|
|
14478
14418
|
}
|
|
14479
14419
|
buildElementsForTable() {
|
|
14480
14420
|
const context = this.pConn$.getContextName();
|
|
@@ -14589,10 +14529,8 @@ class SimpleTableSelectComponent {
|
|
|
14589
14529
|
contextPageReference = pageReference.concat('.').concat(referenceProp);
|
|
14590
14530
|
}
|
|
14591
14531
|
const metadata = isMultiSelectMode
|
|
14592
|
-
?
|
|
14593
|
-
|
|
14594
|
-
: // @ts-ignore - Property 'getCurrentPageFieldMetadata' is private and only accessible within class 'C11nEnv'
|
|
14595
|
-
this.pConn$.getCurrentPageFieldMetadata(contextPageReference);
|
|
14532
|
+
? this.pConn$.getFieldMetadata(`@P .${referenceProp}`)
|
|
14533
|
+
: this.pConn$.getCurrentPageFieldMetadata(contextPageReference);
|
|
14596
14534
|
const { datasource: { parameters: fieldParameters = {} } = {}, pageClass } = metadata;
|
|
14597
14535
|
this.pageClass = pageClass;
|
|
14598
14536
|
const compositeKeys = [];
|
|
@@ -15016,11 +14954,7 @@ class AttachmentComponent {
|
|
|
15016
14954
|
this.bDisabled$ = false;
|
|
15017
14955
|
this.bVisible$ = true;
|
|
15018
14956
|
this.bLoading$ = false;
|
|
15019
|
-
this.arFiles$ = [];
|
|
15020
|
-
this.arFileList$ = [];
|
|
15021
|
-
this.arMenuList$ = [];
|
|
15022
14957
|
this.bShowSelector$ = true;
|
|
15023
|
-
this.bShowJustDelete$ = false;
|
|
15024
14958
|
this.fileTemp = {};
|
|
15025
14959
|
this.allowMultiple$ = false;
|
|
15026
14960
|
this.extensions$ = '';
|
|
@@ -15030,85 +14964,13 @@ class AttachmentComponent {
|
|
|
15030
14964
|
this.localeCategory = 'CosmosFields';
|
|
15031
14965
|
this.uploadMultipleFilesLabel = this.localizedVal('file_upload_text_multiple', this.localeCategory);
|
|
15032
14966
|
this.uploadSingleFileLabel = this.localizedVal('file_upload_text_one', this.localeCategory);
|
|
14967
|
+
this.filesWithError = [];
|
|
14968
|
+
this.files = [];
|
|
15033
14969
|
this.fileDownload = (data, fileName, ext) => {
|
|
15034
14970
|
const file = ext ? `${fileName}.${ext}` : fileName;
|
|
15035
14971
|
download(atob(data), file);
|
|
15036
14972
|
};
|
|
15037
14973
|
this.getAttachmentKey = (name = '') => (name ? `attachmentsList.${name}` : 'attachmentsList');
|
|
15038
|
-
this.getNewListUtilityItemProps = ({ att, cancelFile, downloadFile, deleteFile, removeFile }) => {
|
|
15039
|
-
let actions;
|
|
15040
|
-
let isDownloadable = false;
|
|
15041
|
-
if (att.progress && att.progress !== 100) {
|
|
15042
|
-
actions = [
|
|
15043
|
-
{
|
|
15044
|
-
id: `Cancel-${att.ID}`,
|
|
15045
|
-
text: this.pConn$.getLocalizedValue('Cancel', '', ''),
|
|
15046
|
-
icon: 'times',
|
|
15047
|
-
onClick: cancelFile
|
|
15048
|
-
}
|
|
15049
|
-
];
|
|
15050
|
-
}
|
|
15051
|
-
else if (att.links) {
|
|
15052
|
-
const isFile = att.type === 'FILE';
|
|
15053
|
-
const ID = att.ID.replace(/\s/gi, '');
|
|
15054
|
-
const actionsMap = new Map([
|
|
15055
|
-
[
|
|
15056
|
-
'download',
|
|
15057
|
-
{
|
|
15058
|
-
id: `download-${ID}`,
|
|
15059
|
-
text: isFile ? this.pConn$.getLocalizedValue('Download', '', '') : this.pConn$.getLocalizedValue('Open', '', ''),
|
|
15060
|
-
icon: isFile ? 'download' : 'open',
|
|
15061
|
-
onClick: downloadFile
|
|
15062
|
-
}
|
|
15063
|
-
],
|
|
15064
|
-
[
|
|
15065
|
-
'delete',
|
|
15066
|
-
{
|
|
15067
|
-
id: `Delete-${ID}`,
|
|
15068
|
-
text: this.pConn$.getLocalizedValue('Delete', '', ''),
|
|
15069
|
-
icon: 'trash',
|
|
15070
|
-
onClick: deleteFile
|
|
15071
|
-
}
|
|
15072
|
-
]
|
|
15073
|
-
]);
|
|
15074
|
-
actions = [];
|
|
15075
|
-
actionsMap.forEach((action, actionKey) => {
|
|
15076
|
-
if (att.links[actionKey]) {
|
|
15077
|
-
actions.push(action);
|
|
15078
|
-
}
|
|
15079
|
-
});
|
|
15080
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15081
|
-
isDownloadable = att.links.download;
|
|
15082
|
-
}
|
|
15083
|
-
else if (att.error) {
|
|
15084
|
-
actions = [
|
|
15085
|
-
{
|
|
15086
|
-
id: `Remove-${att.ID}`,
|
|
15087
|
-
text: this.pConn$.getLocalizedValue('Remove', '', ''),
|
|
15088
|
-
icon: 'trash',
|
|
15089
|
-
onClick: removeFile
|
|
15090
|
-
}
|
|
15091
|
-
];
|
|
15092
|
-
}
|
|
15093
|
-
return {
|
|
15094
|
-
id: att.ID,
|
|
15095
|
-
visual: {
|
|
15096
|
-
icon: this.utils.getIconForAttachment(att),
|
|
15097
|
-
progress: att.progress == 100 ? undefined : att.progress
|
|
15098
|
-
},
|
|
15099
|
-
primary: {
|
|
15100
|
-
type: att.type,
|
|
15101
|
-
name: att.error ? att.fileName : att.name,
|
|
15102
|
-
icon: 'trash',
|
|
15103
|
-
click: removeFile
|
|
15104
|
-
},
|
|
15105
|
-
secondary: {
|
|
15106
|
-
text: att.meta,
|
|
15107
|
-
error: att.error
|
|
15108
|
-
},
|
|
15109
|
-
actions
|
|
15110
|
-
};
|
|
15111
|
-
};
|
|
15112
14974
|
this.validateFileExtension = (fileObj, allowedExtensions) => {
|
|
15113
14975
|
if (!allowedExtensions) {
|
|
15114
14976
|
return true;
|
|
@@ -15124,10 +14986,31 @@ class AttachmentComponent {
|
|
|
15124
14986
|
ngOnInit() {
|
|
15125
14987
|
// // First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
15126
14988
|
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
15127
|
-
this.removeFileFromList$ = { onClick: this._removeFileFromList.bind(this) };
|
|
15128
14989
|
this.caseID = PCore.getStoreValue('.pyID', 'caseInfo.content', this.pConn$.getContextName());
|
|
15129
|
-
|
|
14990
|
+
this.srcImg = this.utils.getImageSrc('document-doc', this.utils.getSDKStaticContentUrl());
|
|
14991
|
+
this.deleteIcon = this.utils.getImageSrc('trash', this.utils.getSDKStaticContentUrl());
|
|
15130
14992
|
this.checkAndUpdate();
|
|
14993
|
+
this.getAttachments();
|
|
14994
|
+
}
|
|
14995
|
+
getAttachments() {
|
|
14996
|
+
let tempUploadedFiles = this.getCurrentAttachmentsList(this.getAttachmentKey(this.valueRef), this.pConn$.getContextName());
|
|
14997
|
+
tempUploadedFiles = tempUploadedFiles.filter(f => f.label === this.valueRef && f.delete !== true);
|
|
14998
|
+
this.files?.map(f => {
|
|
14999
|
+
return f.responseProps?.pzInsKey && !f.responseProps.pzInsKey.includes('temp')
|
|
15000
|
+
? {
|
|
15001
|
+
...f,
|
|
15002
|
+
props: {
|
|
15003
|
+
...f.props,
|
|
15004
|
+
onDelete: () => this.deleteFile(f)
|
|
15005
|
+
}
|
|
15006
|
+
}
|
|
15007
|
+
: { ...f };
|
|
15008
|
+
});
|
|
15009
|
+
this.files = [...this.files, ...tempUploadedFiles];
|
|
15010
|
+
PCore.getPubSubUtils().subscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, this.resetAttachmentStoredState.bind(this), this.caseID);
|
|
15011
|
+
return () => {
|
|
15012
|
+
PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, this.caseID);
|
|
15013
|
+
};
|
|
15131
15014
|
}
|
|
15132
15015
|
checkAndUpdate() {
|
|
15133
15016
|
// Should always check the bridge to see if the component should
|
|
@@ -15138,64 +15021,14 @@ class AttachmentComponent {
|
|
|
15138
15021
|
this.updateSelf();
|
|
15139
15022
|
}
|
|
15140
15023
|
}
|
|
15141
|
-
ngOnDestroy() {
|
|
15142
|
-
if (this.angularPConnectData.unsubscribeFn) {
|
|
15143
|
-
this.angularPConnectData.unsubscribeFn();
|
|
15144
|
-
}
|
|
15145
|
-
PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, this.caseID);
|
|
15146
|
-
}
|
|
15147
15024
|
// Callback passed when subscribing to store change
|
|
15148
15025
|
onStateChange() {
|
|
15149
15026
|
this.checkAndUpdate();
|
|
15150
15027
|
}
|
|
15151
|
-
updateAttachmentsInfo() {
|
|
15152
|
-
// @ts-ignore - Property 'attachmentsInfo' does not exist on type 'C11nEnv'
|
|
15153
|
-
if (!this.pConn$.attachmentsInfo) {
|
|
15154
|
-
// @ts-ignore - Property 'attachmentsInfo' does not exist on type 'C11nEnv'
|
|
15155
|
-
this.pConn$.attachmentsInfo = {
|
|
15156
|
-
type: 'File',
|
|
15157
|
-
attachmentFieldName: this.att_valueRef,
|
|
15158
|
-
category: this.att_categoryName
|
|
15159
|
-
};
|
|
15160
|
-
}
|
|
15161
|
-
}
|
|
15162
|
-
processFile(file, i) {
|
|
15163
|
-
file.props.type = file.responseProps.pyMimeFileExtension;
|
|
15164
|
-
file.props.mimeType = file.responseProps.pyMimeFileExtension;
|
|
15165
|
-
file.props.ID = file.responseProps.pzInsKey;
|
|
15166
|
-
const arMenuList = [
|
|
15167
|
-
{
|
|
15168
|
-
icon: 'download',
|
|
15169
|
-
text: this.pConn$.getLocalizedValue('Download', '', ''),
|
|
15170
|
-
onClick: () => this._downloadFileFromList(this.value$.pxResults[i])
|
|
15171
|
-
},
|
|
15172
|
-
{
|
|
15173
|
-
icon: 'trash',
|
|
15174
|
-
text: this.pConn$.getLocalizedValue('Delete', '', ''),
|
|
15175
|
-
onClick: () => this._removeFileFromList(this.arFileList$[i])
|
|
15176
|
-
}
|
|
15177
|
-
];
|
|
15178
|
-
const arFilesAttachmentIDs = [];
|
|
15179
|
-
this.arFileList$.forEach(arFile => {
|
|
15180
|
-
arFilesAttachmentIDs.push(arFile.id);
|
|
15181
|
-
});
|
|
15182
|
-
if (!arFilesAttachmentIDs.includes(file.props.ID)) {
|
|
15183
|
-
this.arFileList$.push(this.getNewListUtilityItemProps({
|
|
15184
|
-
att: file.props,
|
|
15185
|
-
downloadFile: null,
|
|
15186
|
-
cancelFile: null,
|
|
15187
|
-
deleteFile: null,
|
|
15188
|
-
removeFile: null
|
|
15189
|
-
}));
|
|
15190
|
-
}
|
|
15191
|
-
this.arFileList$[i].actions = arMenuList;
|
|
15192
|
-
this.arFileList$[i].noDeleteIcon = true;
|
|
15193
|
-
this.bShowSelector$ = false;
|
|
15194
|
-
}
|
|
15195
15028
|
updateSelf() {
|
|
15196
15029
|
const configProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
15197
15030
|
const stateProps = this.pConn$.getStateProps();
|
|
15198
|
-
const { value, label, extensions } = configProps;
|
|
15031
|
+
const { value, label, extensions, displayMode } = configProps;
|
|
15199
15032
|
if (configProps.required != null) {
|
|
15200
15033
|
this.bRequired$ = this.utils.getBooleanValue(configProps.required);
|
|
15201
15034
|
}
|
|
@@ -15212,7 +15045,6 @@ class AttachmentComponent {
|
|
|
15212
15045
|
if (configProps.allowMultiple != null) {
|
|
15213
15046
|
this.allowMultiple$ = this.utils.getBooleanValue(configProps.allowMultiple);
|
|
15214
15047
|
}
|
|
15215
|
-
this.bShowJustDelete$ = true;
|
|
15216
15048
|
this.label$ = label;
|
|
15217
15049
|
this.value$ = value;
|
|
15218
15050
|
this.status = stateProps.status;
|
|
@@ -15220,83 +15052,47 @@ class AttachmentComponent {
|
|
|
15220
15052
|
this.extensions$ = extensions;
|
|
15221
15053
|
this.valueRef = this.pConn$.getStateProps().value;
|
|
15222
15054
|
this.valueRef = this.valueRef.startsWith('.') ? this.valueRef.substring(1) : this.valueRef;
|
|
15055
|
+
this.displayMode = displayMode;
|
|
15223
15056
|
/* this is a temporary fix because required is supposed to be passed as a boolean and NOT as a string */
|
|
15224
15057
|
let { required, disabled } = configProps;
|
|
15225
15058
|
[required, disabled] = [required, disabled].map(prop => prop === true || (typeof prop === 'string' && prop === 'true'));
|
|
15226
|
-
this.
|
|
15059
|
+
this.categoryName = '';
|
|
15227
15060
|
if (value && value.pyCategoryName) {
|
|
15228
|
-
this.
|
|
15061
|
+
this.categoryName = value.pyCategoryName;
|
|
15062
|
+
}
|
|
15063
|
+
if (value?.pxResults && +value.pyCount > 0) {
|
|
15064
|
+
this.files = value.pxResults.map(f => this.buildFilePropsFromResponse(f));
|
|
15229
15065
|
}
|
|
15230
|
-
this.att_valueRef = this.pConn$.getStateProps().value;
|
|
15231
|
-
this.att_valueRef = this.att_valueRef.indexOf('.') === 0 ? this.att_valueRef.substring(1) : this.att_valueRef;
|
|
15232
15066
|
this.updateAttachments();
|
|
15233
15067
|
}
|
|
15234
|
-
|
|
15235
|
-
|
|
15236
|
-
|
|
15237
|
-
|
|
15238
|
-
|
|
15239
|
-
|
|
15240
|
-
|
|
15241
|
-
|
|
15242
|
-
|
|
15243
|
-
this.arFileList$ = this.myFiles.map(att => {
|
|
15244
|
-
return this.getNewListUtilityItemProps({
|
|
15245
|
-
att,
|
|
15246
|
-
downloadFile: null,
|
|
15247
|
-
cancelFile: null,
|
|
15248
|
-
deleteFile: null,
|
|
15249
|
-
removeFile: null
|
|
15250
|
-
});
|
|
15251
|
-
});
|
|
15068
|
+
buildFilePropsFromResponse(respObj) {
|
|
15069
|
+
return {
|
|
15070
|
+
props: {
|
|
15071
|
+
meta: `${respObj.pyCategoryName}, ${respObj.pxCreateOperator}`,
|
|
15072
|
+
name: respObj.pyAttachName,
|
|
15073
|
+
icon: this.utils.getIconFromFileType(respObj.pyMimeFileExtension)
|
|
15074
|
+
},
|
|
15075
|
+
responseProps: {
|
|
15076
|
+
...respObj
|
|
15252
15077
|
}
|
|
15253
|
-
|
|
15254
|
-
this.myFiles.forEach(myFile => {
|
|
15255
|
-
myFilesAttachmentIDs.push(myFile.ID);
|
|
15256
|
-
});
|
|
15257
|
-
this.arFiles$.forEach(arFile => {
|
|
15258
|
-
if (!myFilesAttachmentIDs.includes(arFile.ID)) {
|
|
15259
|
-
this.myFiles = [...this.myFiles, arFile];
|
|
15260
|
-
}
|
|
15261
|
-
});
|
|
15262
|
-
}
|
|
15263
|
-
this.bShowJustDelete$ = true;
|
|
15264
|
-
this.bShowSelector$ = !(this.arFileList$?.length > 0) || this.allowMultiple$;
|
|
15265
|
-
if (this.arFileList$.length > 0) {
|
|
15266
|
-
this.CheckForInvalidAttachment();
|
|
15267
|
-
}
|
|
15268
|
-
PCore.getPubSubUtils().subscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, this.resetAttachmentStoredState.bind(this), this.caseID);
|
|
15078
|
+
};
|
|
15269
15079
|
}
|
|
15270
|
-
|
|
15271
|
-
this.
|
|
15272
|
-
const
|
|
15273
|
-
|
|
15274
|
-
|
|
15275
|
-
|
|
15276
|
-
|
|
15277
|
-
|
|
15278
|
-
if (file) {
|
|
15279
|
-
const currentAttachmentList = this.getCurrentAttachmentsList(this.getAttachmentKey(this.att_valueRef), this.pConn$.getContextName());
|
|
15280
|
-
const index = currentAttachmentList.findIndex(element => element.props.ID === file.props.ID);
|
|
15281
|
-
let tempFiles = [];
|
|
15282
|
-
if (index < 0) {
|
|
15283
|
-
tempFiles = [file];
|
|
15284
|
-
}
|
|
15285
|
-
PCore.getStateUtils().updateState(this.pConn$.getContextName(), this.getAttachmentKey(this.att_valueRef), [...currentAttachmentList, ...tempFiles], {
|
|
15286
|
-
pageReference: 'context_data',
|
|
15287
|
-
isArrayDeepMerge: false
|
|
15288
|
-
});
|
|
15289
|
-
}
|
|
15290
|
-
}
|
|
15291
|
-
});
|
|
15080
|
+
updateAttachments() {
|
|
15081
|
+
if (this.files.length > 0 && this.displayMode !== 'DISPLAY_ONLY') {
|
|
15082
|
+
const currentAttachmentList = this.getCurrentAttachmentsList(this.getAttachmentKey(this.valueRef), this.pConn$.getContextName());
|
|
15083
|
+
// block duplicate files to redux store when added 1 after another to prevent multiple duplicates being added to the case on submit
|
|
15084
|
+
const tempFiles = this.files.filter(f => currentAttachmentList.findIndex(fr => fr.ID === f.ID) === -1 && !f.inProgress && f.responseProps);
|
|
15085
|
+
const updatedAttList = [...currentAttachmentList, ...tempFiles];
|
|
15086
|
+
this.updateAttachmentState(this.pConn$, this.getAttachmentKey(this.valueRef), updatedAttList);
|
|
15087
|
+
}
|
|
15292
15088
|
}
|
|
15293
15089
|
resetAttachmentStoredState() {
|
|
15294
|
-
PCore.getStateUtils().updateState(this.pConn
|
|
15090
|
+
PCore.getStateUtils().updateState(this.pConn$?.getContextName(), this.getAttachmentKey(this.valueRef), undefined, {
|
|
15295
15091
|
pageReference: 'context_data',
|
|
15296
15092
|
isArrayDeepMerge: false
|
|
15297
15093
|
});
|
|
15298
15094
|
}
|
|
15299
|
-
|
|
15095
|
+
downloadFile(fileObj) {
|
|
15300
15096
|
PCore.getAttachmentUtils()
|
|
15301
15097
|
// @ts-ignore - 3rd parameter "responseEncoding" should be optional
|
|
15302
15098
|
.downloadAttachment(fileObj.pzInsKey, this.pConn$.getContextName())
|
|
@@ -15308,279 +15104,220 @@ class AttachmentComponent {
|
|
|
15308
15104
|
console.log(e);
|
|
15309
15105
|
});
|
|
15310
15106
|
}
|
|
15311
|
-
|
|
15312
|
-
|
|
15313
|
-
|
|
15314
|
-
|
|
15315
|
-
|
|
15316
|
-
|
|
15107
|
+
getCurrentAttachmentsList(key, context) {
|
|
15108
|
+
return PCore.getStoreValue(`.${key}`, 'context_data', context) || [];
|
|
15109
|
+
}
|
|
15110
|
+
validateMaxSize(fileObj, maxSizeInMB) {
|
|
15111
|
+
const fileSize = (fileObj.size / 1048576).toFixed(2);
|
|
15112
|
+
return parseFloat(fileSize) < parseFloat(maxSizeInMB);
|
|
15113
|
+
}
|
|
15114
|
+
updateAttachmentState(pConn, key, attachments) {
|
|
15115
|
+
PCore.getStateUtils().updateState(this.pConn$.getContextName(), key, attachments, {
|
|
15116
|
+
pageReference: 'context_data',
|
|
15117
|
+
isArrayDeepMerge: false
|
|
15317
15118
|
});
|
|
15318
|
-
if (isValid) {
|
|
15319
|
-
// @ts-ignore
|
|
15320
|
-
PCore.getMessageManager().clearMessages({
|
|
15321
|
-
type: PCore.getConstants().MESSAGES.MESSAGES_TYPE_ERROR,
|
|
15322
|
-
property: this.pConn$.getStateProps().value,
|
|
15323
|
-
pageReference: this.pConn$.getPageReference(),
|
|
15324
|
-
context: this.pConn$.getContextName()
|
|
15325
|
-
});
|
|
15326
|
-
}
|
|
15327
15119
|
}
|
|
15328
|
-
|
|
15329
|
-
const fileListIndex = this.arFileList$.findIndex(element => element?.id === item?.id);
|
|
15330
|
-
const fileIndex = this.arFiles$.findIndex(element => element?.ID === item?.id);
|
|
15120
|
+
deleteFile(file) {
|
|
15331
15121
|
const attachmentsList = [];
|
|
15332
|
-
let currentAttachmentList = this.getCurrentAttachmentsList(this.getAttachmentKey(this.
|
|
15333
|
-
|
|
15334
|
-
|
|
15335
|
-
|
|
15336
|
-
|
|
15122
|
+
let currentAttachmentList = this.getCurrentAttachmentsList(this.getAttachmentKey(this.valueRef), this.pConn$.getContextName());
|
|
15123
|
+
// If file to be deleted is the one added in previous stage i.e. for which a file instance is created in server
|
|
15124
|
+
// no need to filter currentAttachmentList as we will get another entry of file in redux with delete & label
|
|
15125
|
+
// eslint-disable-next-line no-unsafe-optional-chaining
|
|
15126
|
+
if (this.value$ && this.value$?.pxResults && +this.value$?.pyCount > 0 && file.responseProps && file?.responseProps?.pzInsKey !== 'temp') {
|
|
15127
|
+
const updatedAttachments = this.files.map(f => {
|
|
15128
|
+
if (f.responseProps && f.responseProps.pzInsKey === file.responseProps.pzInsKey) {
|
|
15129
|
+
return { ...f, delete: true, label: this.valueRef };
|
|
15337
15130
|
}
|
|
15338
|
-
return
|
|
15131
|
+
return f;
|
|
15339
15132
|
});
|
|
15340
15133
|
// updating the redux store to help form-handler in passing the data to delete the file from server
|
|
15341
|
-
|
|
15342
|
-
|
|
15343
|
-
|
|
15344
|
-
|
|
15345
|
-
}
|
|
15134
|
+
this.updateAttachmentState(this.pConn$, this.getAttachmentKey(this.valueRef), [...updatedAttachments]);
|
|
15135
|
+
const newlyAddedFiles = this.files.filter(f => !!f.ID);
|
|
15136
|
+
const filesPostDelete = this.files.filter(f => f.responseProps?.pzInsKey !== 'temp' && f.responseProps?.pzInsKey !== file.responseProps?.pzInsKey);
|
|
15137
|
+
this.files = [...filesPostDelete, ...newlyAddedFiles];
|
|
15138
|
+
} // if the file being deleted is the added in this stage i.e. whose data is not yet created in server
|
|
15346
15139
|
else {
|
|
15347
|
-
|
|
15348
|
-
|
|
15349
|
-
|
|
15350
|
-
|
|
15351
|
-
|
|
15140
|
+
// filter newly added files in this stage, later the updated current stage files will be added to redux once files state is updated
|
|
15141
|
+
currentAttachmentList = currentAttachmentList.filter(f => f.ID !== file.ID);
|
|
15142
|
+
this.files = this.files.filter(f => f.ID !== file.ID);
|
|
15143
|
+
this.updateAttachmentState(this.pConn$, this.getAttachmentKey(this.valueRef), [...currentAttachmentList, ...attachmentsList]);
|
|
15144
|
+
if (file.inProgress) {
|
|
15145
|
+
// @ts-ignore - 3rd parameter "responseEncoding" should be optional
|
|
15146
|
+
PCore.getAttachmentUtils().cancelRequest(file.ID, pConn.getContextName());
|
|
15147
|
+
}
|
|
15148
|
+
}
|
|
15149
|
+
this.filesWithError = this.filesWithError?.filter(f => f.ID !== file.ID);
|
|
15150
|
+
if (this.filesWithError.length === 0) {
|
|
15151
|
+
this.clearFieldErrorMessages();
|
|
15152
|
+
}
|
|
15153
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
15154
|
+
this.fileInput && this.fileInput.nativeElement.value ? null : '';
|
|
15155
|
+
}
|
|
15156
|
+
onFileAdded(event) {
|
|
15157
|
+
let addedFiles = Array.from(event.target.files);
|
|
15158
|
+
addedFiles = this.allowMultiple$ ? addedFiles : [addedFiles[0]];
|
|
15159
|
+
const maxAttachmentSize = PCore.getEnvironmentInfo().getMaxAttachmentSize() || '5';
|
|
15160
|
+
this.tempFilesToBeUploaded = [
|
|
15161
|
+
...addedFiles.map((f, index) => {
|
|
15162
|
+
f.ID = `${new Date().getTime()}I${index}`;
|
|
15163
|
+
f.inProgress = true;
|
|
15164
|
+
f.props = {
|
|
15165
|
+
type: f.type,
|
|
15166
|
+
name: f.name,
|
|
15167
|
+
icon: this.utils.getIconFromFileType(f.type),
|
|
15168
|
+
onDelete: () => this.deleteFile(f)
|
|
15169
|
+
};
|
|
15170
|
+
if (!this.validateMaxSize(f, maxAttachmentSize)) {
|
|
15171
|
+
f.props.error = true;
|
|
15172
|
+
f.inProgress = false;
|
|
15173
|
+
f.props.meta = this.pConn$.getLocalizedValue(`File is too big. Max allowed size is ${maxAttachmentSize}MB.`, '', '');
|
|
15174
|
+
}
|
|
15175
|
+
else if (!this.validateFileExtension(f, this.extensions$)) {
|
|
15176
|
+
f.props.error = true;
|
|
15177
|
+
f.inProgress = false;
|
|
15178
|
+
f.props.meta = `${this.pConn$.getLocalizedValue('File has invalid extension. Allowed extensions are:', '', '')} ${this.extensions$.replaceAll('.', '')}`;
|
|
15179
|
+
}
|
|
15180
|
+
if (f.props.error) {
|
|
15181
|
+
const fieldName = this.pConn$.getStateProps().value;
|
|
15182
|
+
const context = this.pConn$.getContextName();
|
|
15183
|
+
PCore.getMessageManager().addMessages({
|
|
15184
|
+
messages: [
|
|
15185
|
+
{
|
|
15186
|
+
type: 'error',
|
|
15187
|
+
// @ts-ignore - Type '{ type: string; message: string; }' is not assignable to type 'MessagesConfigObject'.
|
|
15188
|
+
message: pConn.getLocalizedValue('Error with one or more files', '', '')
|
|
15189
|
+
}
|
|
15190
|
+
],
|
|
15191
|
+
property: fieldName,
|
|
15192
|
+
pageReference: this.pConn$.getPageReference(),
|
|
15193
|
+
context
|
|
15194
|
+
});
|
|
15195
|
+
}
|
|
15196
|
+
return f;
|
|
15197
|
+
})
|
|
15198
|
+
];
|
|
15199
|
+
const tempFilesWithError = this.tempFilesToBeUploaded.filter(f => f.props.error);
|
|
15200
|
+
if (tempFilesWithError.length > 0) {
|
|
15201
|
+
this.filesWithError = tempFilesWithError;
|
|
15352
15202
|
}
|
|
15353
|
-
if (
|
|
15354
|
-
this.
|
|
15203
|
+
if (!this.allowMultiple$) {
|
|
15204
|
+
this.files = [...this.tempFilesToBeUploaded];
|
|
15355
15205
|
}
|
|
15356
|
-
|
|
15357
|
-
this.
|
|
15206
|
+
else {
|
|
15207
|
+
this.files = [...this.files, ...this.tempFilesToBeUploaded];
|
|
15358
15208
|
}
|
|
15359
|
-
this.
|
|
15360
|
-
this.bShowSelector$ = !(this.arFileList$?.length > 0) || this.allowMultiple$;
|
|
15209
|
+
this.uploadFiles();
|
|
15361
15210
|
}
|
|
15362
|
-
|
|
15363
|
-
|
|
15211
|
+
clearFieldErrorMessages() {
|
|
15212
|
+
const fieldName = this.pConn$.getStateProps().value;
|
|
15213
|
+
const context = this.pConn$.getContextName();
|
|
15214
|
+
PCore.getMessageManager().clearMessages({
|
|
15215
|
+
type: PCore.getConstants().MESSAGES.MESSAGES_TYPE_ERROR,
|
|
15216
|
+
property: fieldName,
|
|
15217
|
+
pageReference: this.pConn$.getPageReference(),
|
|
15218
|
+
context
|
|
15219
|
+
});
|
|
15364
15220
|
}
|
|
15365
|
-
|
|
15221
|
+
onUploadProgress() { }
|
|
15222
|
+
errorHandler(isFetchCanceled, attachedFile) {
|
|
15366
15223
|
return error => {
|
|
15367
15224
|
if (!isFetchCanceled(error)) {
|
|
15368
15225
|
let uploadFailMsg = this.pConn$.getLocalizedValue('Something went wrong', '', '');
|
|
15369
15226
|
if (error.response && error.response.data && error.response.data.errorDetails) {
|
|
15370
15227
|
uploadFailMsg = this.pConn$.getLocalizedValue(error.response.data.errorDetails[0].localizedValue, '', '');
|
|
15371
15228
|
}
|
|
15372
|
-
|
|
15373
|
-
if (
|
|
15374
|
-
|
|
15375
|
-
|
|
15376
|
-
|
|
15377
|
-
|
|
15378
|
-
|
|
15379
|
-
|
|
15380
|
-
|
|
15381
|
-
|
|
15382
|
-
|
|
15229
|
+
this.files.map(f => {
|
|
15230
|
+
if (f.ID === attachedFile.ID) {
|
|
15231
|
+
f.props.meta = uploadFailMsg;
|
|
15232
|
+
f.props.error = true;
|
|
15233
|
+
f.props.onDelete = () => this.deleteFile(f);
|
|
15234
|
+
f.props.icon = this.utils.getIconFromFileType(f.type);
|
|
15235
|
+
f.props.name = this.pConn$.getLocalizedValue('Unable to upload file', '', '');
|
|
15236
|
+
f.inProgress = false;
|
|
15237
|
+
const fieldName = this.pConn$.getStateProps().value;
|
|
15238
|
+
const context = this.pConn$.getContextName();
|
|
15239
|
+
// set errors to property to block submit even on errors in file upload
|
|
15240
|
+
PCore.getMessageManager().addMessages({
|
|
15241
|
+
messages: [
|
|
15242
|
+
{
|
|
15243
|
+
type: 'error',
|
|
15244
|
+
// @ts-ignore - Type '{ type: string; message: string; }' is not assignable to type 'MessagesConfigObject'.
|
|
15245
|
+
message: this.pConn$.getLocalizedValue('Error with one or more files', '', '')
|
|
15246
|
+
}
|
|
15247
|
+
],
|
|
15248
|
+
property: fieldName,
|
|
15249
|
+
pageReference: this.pConn$.getPageReference(),
|
|
15250
|
+
context
|
|
15251
|
+
});
|
|
15252
|
+
delete f.props.progress;
|
|
15383
15253
|
}
|
|
15384
|
-
return
|
|
15385
|
-
att,
|
|
15386
|
-
downloadFile: null,
|
|
15387
|
-
cancelFile: null,
|
|
15388
|
-
deleteFile: null,
|
|
15389
|
-
removeFile: null
|
|
15390
|
-
});
|
|
15391
|
-
});
|
|
15392
|
-
PCore.getMessageManager().addMessages({
|
|
15393
|
-
// @ts-ignore
|
|
15394
|
-
messages: [
|
|
15395
|
-
{
|
|
15396
|
-
type: 'error',
|
|
15397
|
-
message: this.pConn$.getLocalizedValue('Error with one or more files', '', '')
|
|
15398
|
-
}
|
|
15399
|
-
],
|
|
15400
|
-
property: this.pConn$.getStateProps().value,
|
|
15401
|
-
pageReference: this.pConn$.getPageReference(),
|
|
15402
|
-
context: this.pConn$.getContextName()
|
|
15254
|
+
return f;
|
|
15403
15255
|
});
|
|
15404
|
-
this.bShowJustDelete$ = true;
|
|
15405
|
-
this.bLoading$ = false;
|
|
15406
15256
|
}
|
|
15407
15257
|
throw error;
|
|
15408
15258
|
};
|
|
15409
15259
|
}
|
|
15410
|
-
|
|
15411
|
-
|
|
15412
|
-
if (this.arFiles$.length) {
|
|
15413
|
-
arrAttachmentFiles = this.arFiles$;
|
|
15414
|
-
}
|
|
15415
|
-
else {
|
|
15416
|
-
arrAttachmentFiles = this.arFileList$;
|
|
15417
|
-
}
|
|
15418
|
-
this.arFiles$ = [...arrAttachmentFiles, ...this.getFiles(event.target.files)];
|
|
15419
|
-
// convert FileList to an array
|
|
15420
|
-
this.myFiles = Array.from(this.arFiles$);
|
|
15421
|
-
this.bLoading$ = true;
|
|
15422
|
-
const filesToBeUploaded = this.myFiles
|
|
15260
|
+
uploadFiles() {
|
|
15261
|
+
const filesToBeUploaded = this.files
|
|
15423
15262
|
.filter(e => {
|
|
15424
|
-
|
|
15425
|
-
|
|
15426
|
-
}
|
|
15427
|
-
const isFileUploaded = e && e.progress === 100;
|
|
15428
|
-
const fileHasError = e && e.error;
|
|
15263
|
+
const isFileUploaded = e.props && e.props.progress === 100;
|
|
15264
|
+
const fileHasError = e.props && e.props.error;
|
|
15429
15265
|
const isFileUploadedinLastStep = e.responseProps && e.responseProps.pzInsKey;
|
|
15430
15266
|
return !isFileUploaded && !fileHasError && !isFileUploadedinLastStep;
|
|
15431
15267
|
})
|
|
15432
|
-
.map(f => PCore.getAttachmentUtils().uploadAttachment(f, () => {
|
|
15268
|
+
.map(f => window.PCore.getAttachmentUtils().uploadAttachment(f, () => {
|
|
15433
15269
|
this.onUploadProgress();
|
|
15434
15270
|
}, isFetchCanceled => {
|
|
15435
15271
|
return this.errorHandler(isFetchCanceled, f);
|
|
15436
15272
|
}, this.pConn$.getContextName()));
|
|
15437
15273
|
Promise.allSettled(filesToBeUploaded)
|
|
15438
15274
|
.then((fileResponses) => {
|
|
15439
|
-
|
|
15440
|
-
|
|
15441
|
-
|
|
15442
|
-
|
|
15443
|
-
|
|
15444
|
-
|
|
15445
|
-
|
|
15446
|
-
|
|
15447
|
-
|
|
15448
|
-
|
|
15449
|
-
|
|
15450
|
-
|
|
15451
|
-
|
|
15452
|
-
|
|
15453
|
-
|
|
15454
|
-
if (index >= 0) {
|
|
15455
|
-
reqObj = {
|
|
15456
|
-
type: 'File',
|
|
15457
|
-
label: this.att_valueRef,
|
|
15458
|
-
category: this.att_categoryName,
|
|
15459
|
-
handle: successFileResponses[index].value.ID,
|
|
15460
|
-
ID: fileRes.ID,
|
|
15461
|
-
name: fileRes.name
|
|
15462
|
-
};
|
|
15463
|
-
newAttachments = [...newAttachments, reqObj];
|
|
15464
|
-
}
|
|
15465
|
-
});
|
|
15466
|
-
const currentAttachmentList = this.getCurrentAttachmentsList(this.getAttachmentKey(this.att_valueRef), this.pConn$.getContextName()).filter(f => f.label !== this.att_valueRef);
|
|
15467
|
-
PCore.getStateUtils().updateState(this.pConn$.getContextName(), this.getAttachmentKey(this.att_valueRef), [...currentAttachmentList, ...newAttachments], {
|
|
15468
|
-
pageReference: 'context_data',
|
|
15469
|
-
isArrayDeepMerge: false
|
|
15470
|
-
});
|
|
15471
|
-
this.arFiles$ = tempFilesUploaded;
|
|
15472
|
-
this.ngZone.run(() => {
|
|
15473
|
-
this.bShowSelector$ = this.allowMultiple$;
|
|
15474
|
-
this.arFiles$.forEach(file => {
|
|
15475
|
-
if (!file.error) {
|
|
15476
|
-
file.meta = this.pConn$.getLocalizedValue('File uploaded successfully', '', '');
|
|
15477
|
-
}
|
|
15478
|
-
});
|
|
15479
|
-
this.arFileList$ = this.myFiles.map(att => {
|
|
15480
|
-
if (att.id) {
|
|
15481
|
-
return att;
|
|
15275
|
+
fileResponses = fileResponses.filter(fr => fr.status !== 'rejected'); // in case of deleting an in progress file, promise gets cancelled but still enters then block
|
|
15276
|
+
if (fileResponses.length > 0) {
|
|
15277
|
+
this.files.forEach(f => {
|
|
15278
|
+
const index = fileResponses.findIndex((fr) => fr.value.clientFileID === f.ID);
|
|
15279
|
+
if (index >= 0) {
|
|
15280
|
+
f.props.meta = this.pConn$.getLocalizedValue('Uploaded successfully', '', '');
|
|
15281
|
+
f.props.progress = 100;
|
|
15282
|
+
f.inProgress = false;
|
|
15283
|
+
f.handle = fileResponses[index].value.ID;
|
|
15284
|
+
f.label = this.valueRef;
|
|
15285
|
+
f.category = this.categoryName;
|
|
15286
|
+
f.responseProps = {
|
|
15287
|
+
pzInsKey: 'temp',
|
|
15288
|
+
pyAttachName: f.props.name
|
|
15289
|
+
};
|
|
15482
15290
|
}
|
|
15483
|
-
return this.getNewListUtilityItemProps({
|
|
15484
|
-
att,
|
|
15485
|
-
downloadFile: null,
|
|
15486
|
-
cancelFile: null,
|
|
15487
|
-
deleteFile: null,
|
|
15488
|
-
removeFile: null
|
|
15489
|
-
});
|
|
15490
15291
|
});
|
|
15491
|
-
this.
|
|
15492
|
-
this.
|
|
15493
|
-
|
|
15494
|
-
|
|
15495
|
-
}
|
|
15496
|
-
}
|
|
15497
|
-
handleFileUploadFailure() {
|
|
15498
|
-
this.bShowJustDelete$ = true;
|
|
15499
|
-
this.bLoading$ = false;
|
|
15500
|
-
this.bShowSelector$ = this.allowMultiple$;
|
|
15501
|
-
this.myFiles.forEach(file => {
|
|
15502
|
-
if (file?.secondary?.error) {
|
|
15503
|
-
file.meta = 'File uploaded failed';
|
|
15292
|
+
this.updateAttachments();
|
|
15293
|
+
if (this.filesWithError?.length === 0) {
|
|
15294
|
+
this.clearFieldErrorMessages();
|
|
15295
|
+
}
|
|
15504
15296
|
}
|
|
15297
|
+
})
|
|
15298
|
+
.catch(error => {
|
|
15299
|
+
console.log(error);
|
|
15505
15300
|
});
|
|
15506
|
-
this.arFileList$ = this.myFiles.map(att => {
|
|
15507
|
-
return this.getNewListUtilityItemProps({
|
|
15508
|
-
att,
|
|
15509
|
-
downloadFile: null,
|
|
15510
|
-
cancelFile: null,
|
|
15511
|
-
deleteFile: null,
|
|
15512
|
-
removeFile: null
|
|
15513
|
-
});
|
|
15514
|
-
});
|
|
15515
|
-
this.bShowJustDelete$ = true;
|
|
15516
|
-
this.bLoading$ = false;
|
|
15517
15301
|
}
|
|
15518
|
-
|
|
15519
|
-
|
|
15520
|
-
|
|
15521
|
-
return this.setNewFiles(files);
|
|
15522
|
-
}
|
|
15523
|
-
setNewFiles(arFiles) {
|
|
15524
|
-
let index = 0;
|
|
15525
|
-
const maxAttachmentSize = PCore.getEnvironmentInfo().getMaxAttachmentSize() || 5;
|
|
15526
|
-
for (const file of arFiles) {
|
|
15527
|
-
file.mimeType = file.type;
|
|
15528
|
-
file.icon = this.utils.getIconFromFileType(file.type);
|
|
15529
|
-
file.ID = `${new Date().getTime()}I${index}`;
|
|
15530
|
-
if (!this.validateMaxSize(file, maxAttachmentSize)) {
|
|
15531
|
-
file.error = true;
|
|
15532
|
-
file.meta = this.pConn$.getLocalizedValue('File is too big. Max allowed size is 5MB.', '', '');
|
|
15533
|
-
}
|
|
15534
|
-
else if (!this.validateFileExtension(file, this.extensions$)) {
|
|
15535
|
-
file.error = true;
|
|
15536
|
-
file.meta = `${this.pConn$.getLocalizedValue('File has invalid extension. Allowed extensions are:', '', '')} ${this.extensions$.replaceAll('.', '')}`;
|
|
15537
|
-
}
|
|
15538
|
-
if (file.error) {
|
|
15539
|
-
const fieldName = this.pConn$.getStateProps().value;
|
|
15540
|
-
const context = this.pConn$.getContextName();
|
|
15541
|
-
PCore.getMessageManager().addMessages({
|
|
15542
|
-
// @ts-ignore
|
|
15543
|
-
messages: [
|
|
15544
|
-
{
|
|
15545
|
-
type: 'error',
|
|
15546
|
-
message: this.pConn$.getLocalizedValue('Error with one or more files', '', '')
|
|
15547
|
-
}
|
|
15548
|
-
],
|
|
15549
|
-
property: fieldName,
|
|
15550
|
-
pageReference: this.pConn$.getPageReference(),
|
|
15551
|
-
context
|
|
15552
|
-
});
|
|
15553
|
-
}
|
|
15554
|
-
index++;
|
|
15302
|
+
ngOnDestroy() {
|
|
15303
|
+
if (this.angularPConnectData.unsubscribeFn) {
|
|
15304
|
+
this.angularPConnectData.unsubscribeFn();
|
|
15555
15305
|
}
|
|
15556
|
-
|
|
15557
|
-
}
|
|
15558
|
-
validateMaxSize(fileObj, maxSizeInMB) {
|
|
15559
|
-
const fileSize = (fileObj.size / 1048576).toFixed(2);
|
|
15560
|
-
return parseFloat(fileSize) < parseFloat(maxSizeInMB);
|
|
15561
|
-
}
|
|
15562
|
-
buildFilePropsFromResponse(respObj) {
|
|
15563
|
-
return {
|
|
15564
|
-
props: {
|
|
15565
|
-
meta: `${respObj.pyCategoryName}, ${respObj.pxCreateOperator}`,
|
|
15566
|
-
name: respObj.pyAttachName,
|
|
15567
|
-
icon: this.utils.getIconFromFileType(respObj.pyMimeFileExtension)
|
|
15568
|
-
},
|
|
15569
|
-
responseProps: {
|
|
15570
|
-
...respObj
|
|
15571
|
-
}
|
|
15572
|
-
};
|
|
15306
|
+
PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, this.caseID);
|
|
15573
15307
|
}
|
|
15574
15308
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AttachmentComponent, deps: [{ token: AngularPConnectService }, { token: Utils }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15575
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AttachmentComponent, isStandalone: true, selector: "app-attachment", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div class=\"
|
|
15309
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AttachmentComponent, isStandalone: true, selector: "app-attachment", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["uploader"], descendants: true }], ngImport: i0, template: "<div class=\"file-upload-container\" *ngIf=\"bVisible$\">\n <span class=\"attachment-label\" [ngClass]=\"{ 'file-label': bRequired$ }\">{{ label$ }}</span>\n <div *ngIf=\"(files.length === 0 && !allowMultiple$) || allowMultiple$\">\n <div\n style=\"margin-bottom: 10px\"\n id=\"attachment-container\"\n [ngClass]=\"validateMessage ? 'psdk-modal-file-selector-error' : 'psdk-modal-file-selector'\"\n >\n <div [hidden]=\"true\" id=\"attachment-ID\">\n {{ valueRef }}\n </div>\n <input hidden type=\"file\" [required]=\"bRequired$\" #uploader [id]=\"valueRef\" [multiple]=\"allowMultiple$\" (change)=\"onFileAdded($event)\" />\n <button mat-stroked-button color=\"primary\" [disabled]=\"bDisabled$\" (click)=\"uploader.click()\">\n {{\n allowMultiple$\n ? uploadMultipleFilesLabel === 'file_upload_text_multiple'\n ? 'Choose files'\n : uploadMultipleFilesLabel\n : uploadSingleFileLabel === 'file_upload_text_one'\n ? 'Choose a file'\n : uploadSingleFileLabel\n }}\n </button>\n </div>\n </div>\n <span *ngIf=\"validateMessage\" class=\"file-error\">{{ validateMessage }}</span>\n <div *ngIf=\"files && files.length > 0\">\n <div *ngFor=\"let file of files\">\n <div class=\"psdk-attachment-card\">\n <div className=\"psdk-utility-card-icon\">\n <img *ngIf=\"!file.inProgress\" class=\"psdk-attachment-card-svg-icon\" src=\"{{ srcImg }}\" />\n <mat-spinner *ngIf=\"file.inProgress\" class=\"progress-spinner\" diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"psdk-attachment-card-main\">\n <div class=\"psdk-attachment-card-main-primary-label\">{{ file.props.name }}</div>\n <div *ngIf=\"file.props.meta\" [ngStyle]=\"{ color: file.props.error ? 'red' : null }\">{{ file.props.meta }}</div>\n </div>\n <div class=\"psdk-attachment-action\">\n <button id=\"delete-attachment\" *ngIf=\"file.ID\" class=\"psdk-utility-button\" (click)=\"deleteFile(file)\">\n <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ deleteIcon }}\" />\n </button>\n <div *ngIf=\"!file.ID\">\n <button id=\"setting-button\" mat-icon-button [matMenuTriggerFor]=\"actionMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #actionMenu=\"matMenu\">\n <button mat-menu-item (click)=\"downloadFile(file.responseProps ? file.responseProps : {})\">Download</button>\n <button mat-menu-item (click)=\"deleteFile(file)\">Delete</button>\n </mat-menu>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".progress-spinner{text-align:center;position:absolute;left:45%}.psdk-modal-file-selector{border:1px dashed var(--app-neutral-dark-color);width:100%;padding:.3rem;text-align:center;position:relative}.psdk-modal-file-selector-error{border:1px dashed var(--app-error-light-color);width:100%;padding:.3rem;text-align:center;position:relative}.psdk-modal-file-selector{border:1px dashed var(--app-neutral-dark-color);padding:.5rem;text-align:center;position:relative}.label-required:after{display:inline;content:\" *\";vertical-align:top;color:var(--app-neutral-dark-color)}.file-error{color:var(--app-error-light-color)}.psdk-modal-file-selector-error{border:1px dashed var(--app-error-light-color);padding:.5rem;text-align:center;position:relative}.psdk-full-width{width:100%}.psdk-label-readonly{opacity:54%;font-size:.8rem;font-weight:400}.psdk-data-readonly{padding-top:.625rem;width:100%}.psdk-attachment-list{border:1px solid var(--app-neutral-color)}::ng-deep .mat-mdc-form-field-infix{width:auto}.psdk-attachment-card{display:flex;align-items:center;border:.0625rem solid rgb(207,207,207);border-radius:.25rem;padding:.25rem 0rem .25rem .25rem;min-height:3rem;margin-bottom:.5rem}.psdk-attachment-card-main-primary-label{font-weight:500;text-overflow:ellipsis;overflow:hidden;white-space:normal}.psdk-attachment-card-main{flex-grow:2;margin-left:5px}.psdk-attachment-action{flex-grow:1;text-align:right}.psdk-attachment-card-svg-icon{width:2.5rem}.psdk-utility-button{background:none;border:none;margin-right:.5rem;cursor:pointer}.psdk-utility-card-action-svg-icon{width:1.4rem;display:inline-block}.file-div{border:1px dashed var(--app-neutral-dark-color);width:100%;padding:.5rem;text-align:center;position:relative}.file-div-error{border:1px dashed var(--app-error-light-color);width:100%;padding:.5rem;text-align:center;position:relative}.attachment-label{display:block;margin-bottom:10px}.file-label:after{display:inline;content:\" *\";vertical-align:top;color:var(--app-neutral-dark-color)}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatProgressSpinnerModule) }, { kind: "component", type: i0.forwardRef(() => i4$3.MatProgressSpinner), selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatMenuModule) }, { kind: "component", type: i0.forwardRef(() => i6$1.MatMenu), selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i0.forwardRef(() => i6$1.MatMenuItem), selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i0.forwardRef(() => i6$1.MatMenuTrigger), selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatIconModule) }, { kind: "component", type: i0.forwardRef(() => i2$2.MatIcon), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3$1.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => i3$1.MatIconButton), selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
|
|
15576
15310
|
}
|
|
15577
15311
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AttachmentComponent, decorators: [{
|
|
15578
15312
|
type: Component,
|
|
15579
|
-
args: [{ selector: 'app-attachment', standalone: true, imports: [CommonModule, MatProgressSpinnerModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"
|
|
15313
|
+
args: [{ selector: 'app-attachment', standalone: true, imports: [CommonModule, MatProgressSpinnerModule, MatMenuModule, MatIconModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"file-upload-container\" *ngIf=\"bVisible$\">\n <span class=\"attachment-label\" [ngClass]=\"{ 'file-label': bRequired$ }\">{{ label$ }}</span>\n <div *ngIf=\"(files.length === 0 && !allowMultiple$) || allowMultiple$\">\n <div\n style=\"margin-bottom: 10px\"\n id=\"attachment-container\"\n [ngClass]=\"validateMessage ? 'psdk-modal-file-selector-error' : 'psdk-modal-file-selector'\"\n >\n <div [hidden]=\"true\" id=\"attachment-ID\">\n {{ valueRef }}\n </div>\n <input hidden type=\"file\" [required]=\"bRequired$\" #uploader [id]=\"valueRef\" [multiple]=\"allowMultiple$\" (change)=\"onFileAdded($event)\" />\n <button mat-stroked-button color=\"primary\" [disabled]=\"bDisabled$\" (click)=\"uploader.click()\">\n {{\n allowMultiple$\n ? uploadMultipleFilesLabel === 'file_upload_text_multiple'\n ? 'Choose files'\n : uploadMultipleFilesLabel\n : uploadSingleFileLabel === 'file_upload_text_one'\n ? 'Choose a file'\n : uploadSingleFileLabel\n }}\n </button>\n </div>\n </div>\n <span *ngIf=\"validateMessage\" class=\"file-error\">{{ validateMessage }}</span>\n <div *ngIf=\"files && files.length > 0\">\n <div *ngFor=\"let file of files\">\n <div class=\"psdk-attachment-card\">\n <div className=\"psdk-utility-card-icon\">\n <img *ngIf=\"!file.inProgress\" class=\"psdk-attachment-card-svg-icon\" src=\"{{ srcImg }}\" />\n <mat-spinner *ngIf=\"file.inProgress\" class=\"progress-spinner\" diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"psdk-attachment-card-main\">\n <div class=\"psdk-attachment-card-main-primary-label\">{{ file.props.name }}</div>\n <div *ngIf=\"file.props.meta\" [ngStyle]=\"{ color: file.props.error ? 'red' : null }\">{{ file.props.meta }}</div>\n </div>\n <div class=\"psdk-attachment-action\">\n <button id=\"delete-attachment\" *ngIf=\"file.ID\" class=\"psdk-utility-button\" (click)=\"deleteFile(file)\">\n <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ deleteIcon }}\" />\n </button>\n <div *ngIf=\"!file.ID\">\n <button id=\"setting-button\" mat-icon-button [matMenuTriggerFor]=\"actionMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #actionMenu=\"matMenu\">\n <button mat-menu-item (click)=\"downloadFile(file.responseProps ? file.responseProps : {})\">Download</button>\n <button mat-menu-item (click)=\"deleteFile(file)\">Delete</button>\n </mat-menu>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".progress-spinner{text-align:center;position:absolute;left:45%}.psdk-modal-file-selector{border:1px dashed var(--app-neutral-dark-color);width:100%;padding:.3rem;text-align:center;position:relative}.psdk-modal-file-selector-error{border:1px dashed var(--app-error-light-color);width:100%;padding:.3rem;text-align:center;position:relative}.psdk-modal-file-selector{border:1px dashed var(--app-neutral-dark-color);padding:.5rem;text-align:center;position:relative}.label-required:after{display:inline;content:\" *\";vertical-align:top;color:var(--app-neutral-dark-color)}.file-error{color:var(--app-error-light-color)}.psdk-modal-file-selector-error{border:1px dashed var(--app-error-light-color);padding:.5rem;text-align:center;position:relative}.psdk-full-width{width:100%}.psdk-label-readonly{opacity:54%;font-size:.8rem;font-weight:400}.psdk-data-readonly{padding-top:.625rem;width:100%}.psdk-attachment-list{border:1px solid var(--app-neutral-color)}::ng-deep .mat-mdc-form-field-infix{width:auto}.psdk-attachment-card{display:flex;align-items:center;border:.0625rem solid rgb(207,207,207);border-radius:.25rem;padding:.25rem 0rem .25rem .25rem;min-height:3rem;margin-bottom:.5rem}.psdk-attachment-card-main-primary-label{font-weight:500;text-overflow:ellipsis;overflow:hidden;white-space:normal}.psdk-attachment-card-main{flex-grow:2;margin-left:5px}.psdk-attachment-action{flex-grow:1;text-align:right}.psdk-attachment-card-svg-icon{width:2.5rem}.psdk-utility-button{background:none;border:none;margin-right:.5rem;cursor:pointer}.psdk-utility-card-action-svg-icon{width:1.4rem;display:inline-block}.file-div{border:1px dashed var(--app-neutral-dark-color);width:100%;padding:.5rem;text-align:center;position:relative}.file-div-error{border:1px dashed var(--app-error-light-color);width:100%;padding:.5rem;text-align:center;position:relative}.attachment-label{display:block;margin-bottom:10px}.file-label:after{display:inline;content:\" *\";vertical-align:top;color:var(--app-neutral-dark-color)}\n"] }]
|
|
15580
15314
|
}], ctorParameters: () => [{ type: AngularPConnectService }, { type: Utils }, { type: i0.NgZone }], propDecorators: { pConn$: [{
|
|
15581
15315
|
type: Input
|
|
15582
15316
|
}], formGroup$: [{
|
|
15583
15317
|
type: Input
|
|
15318
|
+
}], fileInput: [{
|
|
15319
|
+
type: ViewChild,
|
|
15320
|
+
args: ['uploader', { static: false }]
|
|
15584
15321
|
}] } });
|
|
15585
15322
|
|
|
15586
15323
|
class CaseHistoryComponent {
|
|
@@ -15591,7 +15328,6 @@ class CaseHistoryComponent {
|
|
|
15591
15328
|
}
|
|
15592
15329
|
ngOnInit() {
|
|
15593
15330
|
this.configProps$ = this.pConn$.getConfigProps();
|
|
15594
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
15595
15331
|
const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);
|
|
15596
15332
|
const dataViewName = 'D_pyWorkHistory';
|
|
15597
15333
|
const context = this.pConn$.getContextName();
|
|
@@ -15887,7 +15623,6 @@ class FileUtilityComponent {
|
|
|
15887
15623
|
}
|
|
15888
15624
|
onAttachFiles(files) {
|
|
15889
15625
|
const attachmentUtils = PCore.getAttachmentUtils();
|
|
15890
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
15891
15626
|
const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);
|
|
15892
15627
|
if (files.length > 0) {
|
|
15893
15628
|
this.lu_bLoading$ = true;
|
|
@@ -15920,7 +15655,6 @@ class FileUtilityComponent {
|
|
|
15920
15655
|
errorHandler() { }
|
|
15921
15656
|
onAttachLinks(links) {
|
|
15922
15657
|
const attachmentUtils = PCore.getAttachmentUtils();
|
|
15923
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
15924
15658
|
const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);
|
|
15925
15659
|
if (links.length > 0) {
|
|
15926
15660
|
this.lu_bLoading$ = true;
|
|
@@ -16228,7 +15962,6 @@ class FileUtilityComponent {
|
|
|
16228
15962
|
}
|
|
16229
15963
|
}
|
|
16230
15964
|
getCaseID() {
|
|
16231
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
16232
15965
|
return this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID) || '';
|
|
16233
15966
|
}
|
|
16234
15967
|
fetchCaseAttachments(caseID) {
|
|
@@ -16267,7 +16000,6 @@ class FileUtilityComponent {
|
|
|
16267
16000
|
return att.error ? () => this.removeFile() : null;
|
|
16268
16001
|
}
|
|
16269
16002
|
caseHasChanged() {
|
|
16270
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
16271
16003
|
const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);
|
|
16272
16004
|
if (this.currentCaseID !== caseID) {
|
|
16273
16005
|
this.currentCaseID = caseID;
|
|
@@ -16603,13 +16335,11 @@ class FeedContainerComponent {
|
|
|
16603
16335
|
this.updateSelf();
|
|
16604
16336
|
}
|
|
16605
16337
|
else {
|
|
16606
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
16607
16338
|
const newPulseData = this.pConn$.getDataObject().pulse;
|
|
16608
16339
|
if (!isEqual(newPulseData, this.pulseData)) {
|
|
16609
16340
|
this.updateSelf();
|
|
16610
16341
|
}
|
|
16611
16342
|
}
|
|
16612
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
16613
16343
|
this.pulseData = this.pConn$.getDataObject().pulse;
|
|
16614
16344
|
}
|
|
16615
16345
|
updateSelf() {
|
|
@@ -16618,9 +16348,7 @@ class FeedContainerComponent {
|
|
|
16618
16348
|
getMessageData() {
|
|
16619
16349
|
const messageIDs = this.pConn$.getConfigProps().messageIDs;
|
|
16620
16350
|
const userName = this.pConn$.getConfigProps().currentUser;
|
|
16621
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
16622
16351
|
const imageKey = this.pConn$.getValue('OperatorID.pyImageInsKey');
|
|
16623
|
-
// @ts-ignore - parameter “contextName” for getDataObject method should be optional
|
|
16624
16352
|
const oData = this.pConn$.getDataObject();
|
|
16625
16353
|
if (messageIDs && messageIDs.length > 0) {
|
|
16626
16354
|
this.pulseMessages$ = JSON.parse(JSON.stringify(oData.pulse.messages));
|
|
@@ -18162,7 +17890,6 @@ class RepeatingStructuresComponent {
|
|
|
18162
17890
|
this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
18163
17891
|
this.fields$ = this.initializeColumns(componentConfig.fields);
|
|
18164
17892
|
const refList = this.configProps$.referenceList;
|
|
18165
|
-
// @ts-ignore - second parameter pageReference for getValue method should be optional
|
|
18166
17893
|
const tableDataResults = JSON.parse(JSON.stringify(this.pConn$.getValue(refList)));
|
|
18167
17894
|
// update elements like date format
|
|
18168
17895
|
const updatedRefList = this.updateData(tableDataResults, this.fields$);
|