mmhglobal-dynamicform 2.15.3 → 2.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/esm2020/lib/animations/component-animations.mjs +29 -2
- package/esm2020/lib/services/main.service.mjs +21 -68
- package/esm2020/lib/virtual-scroll/virtual-scroll.component.mjs +118 -35
- package/esm2020/lib/zgrid/zgrid.component.mjs +6 -4
- package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +12 -14
- package/esm2020/lib/ztree/ztree.component.mjs +3 -3
- package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +20 -31
- package/fesm2015/mmhglobal-dynamicform.mjs +195 -145
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +194 -145
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/animations/component-animations.d.ts +2 -0
- package/lib/virtual-scroll/virtual-scroll.component.d.ts +15 -4
- package/lib/zselectmultiple/zselectmultiple.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ import { NavigationStart, NavigationEnd, NavigationError, RouterModule } from '@
|
|
|
7
7
|
import { BehaviorSubject, forkJoin, of, tap as tap$1, map as map$1, isObservable, switchMap as switchMap$1, interval, takeWhile, from, Subject, delay as delay$1, filter, first, auditTime } from 'rxjs';
|
|
8
8
|
import { tap, switchMap, map, take, delay, concatMap, ignoreElements } from 'rxjs/operators';
|
|
9
9
|
import * as i2 from 'mmhglobal-zcore';
|
|
10
|
-
import { ZGroup, FormType, ZComponentHelper, MESSAGETYPE, DefaultMessage, DefaultDialogTitle,
|
|
10
|
+
import { ZGroup, FormType, ZComponentHelper, MESSAGETYPE, ActionType, DefaultMessage, DefaultDialogTitle, Delimiter, ZSelectPostApiParams, ZComponentProperties, ComponentType as ComponentType$1, InternalComponentType_DropDown, UploadMetaData, AttachmentConfig, DefaultPageSettingParams, ZCoreModule } from 'mmhglobal-zcore';
|
|
11
11
|
import * as i2$1 from '@ionic/angular';
|
|
12
12
|
import { IonicModule } from '@ionic/angular';
|
|
13
13
|
import * as i3 from 'mmhglobal-zmodal';
|
|
@@ -18,7 +18,7 @@ import * as i8 from '@progress/kendo-angular-grid';
|
|
|
18
18
|
import { DataBindingDirective, GridComponent, BaseFilterCellComponent, ExcelModule, GridModule } from '@progress/kendo-angular-grid';
|
|
19
19
|
import * as i5 from '@angular/common';
|
|
20
20
|
import { formatDate, CommonModule } from '@angular/common';
|
|
21
|
-
import * as
|
|
21
|
+
import * as i3$b from '@angular/cdk/scrolling';
|
|
22
22
|
import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
|
|
23
23
|
import * as i4 from '@angular/forms';
|
|
24
24
|
import { Validators, FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
@@ -85,7 +85,7 @@ import 'brace/mode/json';
|
|
|
85
85
|
import 'brace/mode/javascript';
|
|
86
86
|
import 'brace/mode/html';
|
|
87
87
|
import { process } from '@progress/kendo-data-query';
|
|
88
|
-
import { trigger, transition, style, animate } from '@angular/animations';
|
|
88
|
+
import { trigger, transition, style, animate, state } from '@angular/animations';
|
|
89
89
|
import * as i3$7 from '@progress/kendo-angular-toolbar';
|
|
90
90
|
import { MultiSelect, DropDownList } from '@syncfusion/ej2-dropdowns';
|
|
91
91
|
import { createElement, getComponent } from '@syncfusion/ej2-base';
|
|
@@ -921,55 +921,7 @@ class MainService {
|
|
|
921
921
|
}
|
|
922
922
|
return of(false);
|
|
923
923
|
}));
|
|
924
|
-
|
|
925
|
-
// this.alertCtrl
|
|
926
|
-
// .create({
|
|
927
|
-
// header: "Data not save yet",
|
|
928
|
-
// // subHeader: 'SubHeader statement here',
|
|
929
|
-
// message: "Are you sure want to discard the changes?",
|
|
930
|
-
// buttons: [
|
|
931
|
-
// {
|
|
932
|
-
// text: "Cancel",
|
|
933
|
-
// role: "cancel",
|
|
934
|
-
// cssClass: "secondary",
|
|
935
|
-
// handler: () => {
|
|
936
|
-
// replySub.next(false);
|
|
937
|
-
// }
|
|
938
|
-
// },
|
|
939
|
-
// {
|
|
940
|
-
// text: "Discard Changes",
|
|
941
|
-
// cssClass: "warning",
|
|
942
|
-
// handler: () => {
|
|
943
|
-
// replySub.next(true);
|
|
944
|
-
// }
|
|
945
|
-
// }
|
|
946
|
-
// ]
|
|
947
|
-
// })
|
|
948
|
-
// .then(alertElement => {
|
|
949
|
-
// alertElement.present();
|
|
950
|
-
// });
|
|
951
|
-
// return replySub.asObservable().pipe(take(1));
|
|
952
|
-
}
|
|
953
|
-
// async openModalForm(modalParams: ModalPageParams) {
|
|
954
|
-
// // console.log("openModalForm");
|
|
955
|
-
// console.error(
|
|
956
|
-
// "Please use ModalService.show instead of MainService.openModalForm!"
|
|
957
|
-
// );
|
|
958
|
-
// // const modal = this.modalService.show(modalParams.colFields$ || modalParams.controllerName, modalParams.parentGroup,
|
|
959
|
-
// // modalParams.formHeader, modalParams.zModel, modalParams.referId);
|
|
960
|
-
// const modal = await this.modalCtrl.create({
|
|
961
|
-
// component: ZmodalPage,
|
|
962
|
-
// backdropDismiss: true,
|
|
963
|
-
// componentProps: {
|
|
964
|
-
// modalParams,
|
|
965
|
-
// },
|
|
966
|
-
// });
|
|
967
|
-
// modal.present();
|
|
968
|
-
// return modal;
|
|
969
|
-
// // .onWillDismiss((zmodel: any) => {
|
|
970
|
-
// // this.
|
|
971
|
-
// // });
|
|
972
|
-
// }
|
|
924
|
+
}
|
|
973
925
|
closeModalForm(group) {
|
|
974
926
|
if (group && group.subject) {
|
|
975
927
|
group.subject.next({
|
|
@@ -1107,8 +1059,9 @@ class MainService {
|
|
|
1107
1059
|
if (this.previousRouteParam) {
|
|
1108
1060
|
const paramSegment = this.previousRouteParam.split("/");
|
|
1109
1061
|
const actionSegment = paramSegment[paramSegment.length - 1];
|
|
1110
|
-
// If the last segment is 'new' or 'update', store the previous route param in session storage
|
|
1111
|
-
|
|
1062
|
+
// If the last segment is 'new' or 'update', store the previous route param in session storage
|
|
1063
|
+
const validActionTypes = [ActionType.New.toString(), ActionType.Edit.toString(), ActionType.Update.toString()];
|
|
1064
|
+
if (validActionTypes.includes(actionSegment)) {
|
|
1112
1065
|
this.storageService.set(this.PREVIOUS_PAGE_ROUTE_PARAM_STORAGE_KEY, JSON.stringify(this.previousRouteParam));
|
|
1113
1066
|
}
|
|
1114
1067
|
}
|
|
@@ -1336,11 +1289,11 @@ class MainService {
|
|
|
1336
1289
|
//const lastSegment = pathSegment[pathSegment.length - 1];
|
|
1337
1290
|
const currentNavigationParam = this.getNavigationCurrentParam();
|
|
1338
1291
|
const navigationSegments = currentNavigationParam ? currentNavigationParam.split('/') : null;
|
|
1339
|
-
const defaultAction = group.isCloneNew ?
|
|
1340
|
-
const actionSegment = group.isCloneNew ? (navigationSegments ? navigationSegments[navigationSegments.length - 1] :
|
|
1292
|
+
const defaultAction = group.isCloneNew ? ActionType.New : ActionType.Edit;
|
|
1293
|
+
const actionSegment = group.isCloneNew ? (navigationSegments ? navigationSegments[navigationSegments.length - 1] : ActionType.New) : defaultAction;
|
|
1341
1294
|
if (group.isListForm) {
|
|
1342
1295
|
this.tryUpdateGroupTrigger(false);
|
|
1343
|
-
this.setNavigationParams([referenceId,
|
|
1296
|
+
this.setNavigationParams([referenceId, ActionType.New.toString()]);
|
|
1344
1297
|
this.router.navigate([group.editModelURL], {
|
|
1345
1298
|
relativeTo: group.ctrlScope.activatedRoute,
|
|
1346
1299
|
});
|
|
@@ -1354,7 +1307,7 @@ class MainService {
|
|
|
1354
1307
|
// Scenario 6: From List open record(action: edit), isCloneNew, Save, Click New ==> Clear form (When UpdateModel, need change isCloneNew = false)
|
|
1355
1308
|
// Scenario 7: From List open record(action: edit), Click New ==> Clear form
|
|
1356
1309
|
// Scenario 8: From List open record(action: edit), Click New, Save, isCloneNew ==> DONT Clear form
|
|
1357
|
-
if (actionSegment ===
|
|
1310
|
+
if (actionSegment === ActionType.Edit || actionSegment === ActionType.New) {
|
|
1358
1311
|
if (!group.isCloneNew) {
|
|
1359
1312
|
group.zModel = {};
|
|
1360
1313
|
group.form.reset();
|
|
@@ -1363,14 +1316,14 @@ class MainService {
|
|
|
1363
1316
|
this.reloadWorkflowButton(group, event.data.zButtonName);
|
|
1364
1317
|
}
|
|
1365
1318
|
}
|
|
1366
|
-
if (actionSegment ===
|
|
1319
|
+
if (actionSegment === ActionType.Edit) {
|
|
1367
1320
|
// clear cloneNewModel cache(if have)
|
|
1368
1321
|
if (this.cacheService.getCache(this.CLONE_NEW_MODEL_CACHE_KEY)) {
|
|
1369
1322
|
this.cacheService.clearCache(this.CLONE_NEW_MODEL_CACHE_KEY);
|
|
1370
1323
|
}
|
|
1371
1324
|
//this.setNavigationParams([referenceId, 'new']);
|
|
1372
1325
|
this.removeLastRouteParam();
|
|
1373
|
-
this.setRouteParam([referenceId,
|
|
1326
|
+
this.setRouteParam([referenceId, ActionType.New.toString()]);
|
|
1374
1327
|
group.zModel[group.parentReferenceField] = referenceId;
|
|
1375
1328
|
}
|
|
1376
1329
|
group.isEdit = false;
|
|
@@ -1379,7 +1332,7 @@ class MainService {
|
|
|
1379
1332
|
}
|
|
1380
1333
|
else {
|
|
1381
1334
|
this.tryUpdateGroupTrigger(false);
|
|
1382
|
-
this.setNavigationParams([referenceId,
|
|
1335
|
+
this.setNavigationParams([referenceId, ActionType.New.toString()]);
|
|
1383
1336
|
this.router.navigate([group.editModelURL], {
|
|
1384
1337
|
relativeTo: group.ctrlScope.activatedRoute,
|
|
1385
1338
|
});
|
|
@@ -1395,10 +1348,10 @@ class MainService {
|
|
|
1395
1348
|
}
|
|
1396
1349
|
createModel(event, group) {
|
|
1397
1350
|
const fg = group.form;
|
|
1398
|
-
const resMessage = group.SuccessCreatedMessage ||
|
|
1351
|
+
const resMessage = group.SuccessCreatedMessage || DefaultMessage.recordCreated;
|
|
1399
1352
|
let createModelres = null;
|
|
1400
1353
|
if (!fg.dirty) {
|
|
1401
|
-
console.warn(
|
|
1354
|
+
console.warn(DefaultMessage.notDirtyMessage);
|
|
1402
1355
|
return;
|
|
1403
1356
|
}
|
|
1404
1357
|
if (!fg.valid) {
|
|
@@ -1453,7 +1406,7 @@ class MainService {
|
|
|
1453
1406
|
}
|
|
1454
1407
|
updateModelObservable(event, group, form = null, updateAPIObservable = null, isSkipDirty = false) {
|
|
1455
1408
|
const fg = form || group.form;
|
|
1456
|
-
const resMessage = group.SuccessUpdatedMessage ||
|
|
1409
|
+
const resMessage = group.SuccessUpdatedMessage || DefaultMessage.recordUpdated;
|
|
1457
1410
|
let updateModelres = null;
|
|
1458
1411
|
if (!this.isFormDirtyAndValid(fg, group, isSkipDirty, event)) {
|
|
1459
1412
|
if (isSkipDirty) {
|
|
@@ -1461,7 +1414,7 @@ class MainService {
|
|
|
1461
1414
|
}
|
|
1462
1415
|
return of(false);
|
|
1463
1416
|
}
|
|
1464
|
-
updateAPIObservable = updateAPIObservable || this.webApiService.httpPut$(group.resourceURL
|
|
1417
|
+
updateAPIObservable = updateAPIObservable || this.webApiService.httpPut$(`${group.resourceURL}/${group.zModel.Id}`, group.zModel, false).pipe(tap((res) => {
|
|
1465
1418
|
this.handleSuccess(res, resMessage);
|
|
1466
1419
|
}
|
|
1467
1420
|
//this.handleSuccess(res, "Record is updated successfully.")
|
|
@@ -1535,14 +1488,14 @@ class MainService {
|
|
|
1535
1488
|
}
|
|
1536
1489
|
deleteModel(event, group) {
|
|
1537
1490
|
const fg = group.form;
|
|
1538
|
-
const resMessage = group.SuccessDeletedMessage ||
|
|
1491
|
+
const resMessage = group.SuccessDeletedMessage || DefaultMessage.recordDeleted;
|
|
1539
1492
|
of(group.zModel)
|
|
1540
1493
|
.pipe(switchMap((zmodel) => {
|
|
1541
1494
|
console.log("Before delete, zModel:", zmodel);
|
|
1542
1495
|
return this.beforeDeleteModel(group);
|
|
1543
1496
|
}), switchMap(() => {
|
|
1544
1497
|
group.isTriggered = false;
|
|
1545
|
-
return this.alertService.show("Delete Record",
|
|
1498
|
+
return this.alertService.show("Delete Record", DefaultMessage.confirmation, [
|
|
1546
1499
|
{ text: "No", cssClass: "secondary" },
|
|
1547
1500
|
{ text: "Yes", cssClass: "primary" }
|
|
1548
1501
|
]);
|
|
@@ -1608,7 +1561,7 @@ class MainService {
|
|
|
1608
1561
|
}
|
|
1609
1562
|
isFormDirtyAndValid(fg, group, isSkipDirty = false, event) {
|
|
1610
1563
|
if (!isSkipDirty && !fg.dirty) {
|
|
1611
|
-
console.warn(
|
|
1564
|
+
console.warn(DefaultMessage.notDirtyMessage);
|
|
1612
1565
|
const message = event && event.data && event.data[`FormNotDirtyMessage`] ? event.data[`FormNotDirtyMessage`] : DefaultMessage.notDirtyMessage;
|
|
1613
1566
|
this.alertService.showOkay(DefaultDialogTitle.nothingToUpdate, message, ["col-5"]);
|
|
1614
1567
|
return false;
|
|
@@ -1813,7 +1766,7 @@ class MainService {
|
|
|
1813
1766
|
}
|
|
1814
1767
|
}
|
|
1815
1768
|
handleSignalRModificationAlert(formId) {
|
|
1816
|
-
if (this.signalrService.signalREnabled()) {
|
|
1769
|
+
if (this.signalrService.signalREnabled() && this.environment.enableFormPageModificationAlert) {
|
|
1817
1770
|
const eventName = `${window.location.href}`.replace(/([^:]\/)\/+/g, "$1");
|
|
1818
1771
|
if (!this.group.signalRCallbackHandler) {
|
|
1819
1772
|
this.group.signalRCallbackHandler = {};
|
|
@@ -1823,7 +1776,7 @@ class MainService {
|
|
|
1823
1776
|
this.signalrService.subscribeToEvent(this.group, `${eventName}`, `group.signalRCallbackHandler.alertFormModified`);
|
|
1824
1777
|
}
|
|
1825
1778
|
else {
|
|
1826
|
-
console.warn('
|
|
1779
|
+
console.warn('enableFormPageModificationAlert not enabled.');
|
|
1827
1780
|
}
|
|
1828
1781
|
}
|
|
1829
1782
|
alertFormModified(formId, group, resp, eventName) {
|
|
@@ -6677,6 +6630,33 @@ const hideAndShowVerticalAnimation = trigger('hideAndShowAnimation', [
|
|
|
6677
6630
|
style({ transform: 'translateY(0)', opacity: 1, height: 100 }),
|
|
6678
6631
|
animate('300ms ease-in', style({ transform: 'translateY(-20%)', opacity: 0, height: 0 }))
|
|
6679
6632
|
])
|
|
6633
|
+
]);
|
|
6634
|
+
const rotateAnimation = trigger('rotateAnimation', [
|
|
6635
|
+
state('default', style({
|
|
6636
|
+
transform: 'rotate(0deg)'
|
|
6637
|
+
})),
|
|
6638
|
+
state('rotate', style({
|
|
6639
|
+
transform: 'rotate(' + '{{degree}}' + 'deg)'
|
|
6640
|
+
}), { params: { degree: 90 } }),
|
|
6641
|
+
transition('* => *', [
|
|
6642
|
+
animate('{{duration}}')
|
|
6643
|
+
], { params: { duration: '0.2s' } }),
|
|
6644
|
+
]);
|
|
6645
|
+
const collapseAnimation = trigger('collapseAnimation', [
|
|
6646
|
+
state('default', style({
|
|
6647
|
+
transform: 'translateY(0)', opacity: 1, display: 'block'
|
|
6648
|
+
})),
|
|
6649
|
+
state('collapse', style({
|
|
6650
|
+
transform: 'translateY(' + '{{height}}' + ')',
|
|
6651
|
+
opacity: 0,
|
|
6652
|
+
display: 'none'
|
|
6653
|
+
}), { params: { height: '-10%' } }),
|
|
6654
|
+
transition('* => collapse', [
|
|
6655
|
+
animate('{{duration}}')
|
|
6656
|
+
], { params: { duration: '0.2s' } }),
|
|
6657
|
+
transition('* => default', [
|
|
6658
|
+
animate('{{duration}}')
|
|
6659
|
+
], { params: { duration: '0.2s' } })
|
|
6680
6660
|
]);
|
|
6681
6661
|
|
|
6682
6662
|
/********** Angular **********/
|
|
@@ -6717,24 +6697,19 @@ class ZworkflowbuttonsComponent extends ButtonFieldBase {
|
|
|
6717
6697
|
this.componentService.decrementComponentCounterForField(this.data);
|
|
6718
6698
|
}
|
|
6719
6699
|
loadButton() {
|
|
6700
|
+
var _a;
|
|
6720
6701
|
this.leftBtns = [];
|
|
6721
6702
|
this.rightBtns = [];
|
|
6722
6703
|
this.items = [];
|
|
6723
6704
|
// Get WFS_DocumentId if any.
|
|
6724
|
-
|
|
6725
|
-
if (this.group.zModel) {
|
|
6726
|
-
documentId = this.group.zModel['WFS_DocumentId'];
|
|
6727
|
-
}
|
|
6705
|
+
const documentId = (_a = this.group.zModel) === null || _a === void 0 ? void 0 : _a['WFS_DocumentId'];
|
|
6728
6706
|
// Set the documentId to the service
|
|
6729
6707
|
this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);
|
|
6730
6708
|
// button count
|
|
6731
6709
|
this.group.zButtonsCount++;
|
|
6732
|
-
|
|
6733
|
-
this.FirstZbtn = true;
|
|
6734
|
-
}
|
|
6710
|
+
this.FirstZbtn = this.group.zButtonsCount === 1;
|
|
6735
6711
|
try {
|
|
6736
|
-
of(true)
|
|
6737
|
-
.pipe(concatMap(() => {
|
|
6712
|
+
of(true).pipe(concatMap(() => {
|
|
6738
6713
|
// retrieve the workflow button
|
|
6739
6714
|
return this.workflowService.getWorkflowButtonsField(this.data.WorkflowCode, this.e1wfs_wfcGetWorkflowButtonURL, String(this.isLocalHostAPI));
|
|
6740
6715
|
}), tap(resultData => {
|
|
@@ -6747,7 +6722,7 @@ class ZworkflowbuttonsComponent extends ButtonFieldBase {
|
|
|
6747
6722
|
const attributes = JSON.parse(button.Attributes);
|
|
6748
6723
|
const isUseCustomClass = attributes.Color ? false : true;
|
|
6749
6724
|
button = this.appendToAttributeUsefulDetail(button);
|
|
6750
|
-
|
|
6725
|
+
const btn = {
|
|
6751
6726
|
name: button.Name,
|
|
6752
6727
|
text: label,
|
|
6753
6728
|
icon: ZComponentHelper.getIcon(attributes.Icon),
|
|
@@ -6762,39 +6737,33 @@ class ZworkflowbuttonsComponent extends ButtonFieldBase {
|
|
|
6762
6737
|
this.buttonClick(button);
|
|
6763
6738
|
}
|
|
6764
6739
|
};
|
|
6765
|
-
if (attributes.PositionX && attributes.PositionX ===
|
|
6740
|
+
if (attributes.PositionX && attributes.PositionX === 'right') {
|
|
6766
6741
|
this.rightBtns.push(btn);
|
|
6767
6742
|
}
|
|
6768
6743
|
else {
|
|
6769
6744
|
this.leftBtns.push(btn);
|
|
6770
6745
|
}
|
|
6771
|
-
const mappedInfo = {
|
|
6772
|
-
'role': [],
|
|
6773
|
-
'status': [],
|
|
6774
|
-
'parentStatus': []
|
|
6775
|
-
};
|
|
6776
|
-
//ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);
|
|
6777
6746
|
});
|
|
6778
6747
|
this.items.push(...this.leftBtns, ...this.rightBtns);
|
|
6779
6748
|
}
|
|
6780
6749
|
else {
|
|
6781
|
-
console.warn('
|
|
6750
|
+
console.warn('Unable to get workflow button. Data returned null.');
|
|
6782
6751
|
}
|
|
6783
6752
|
}), switchMap(() => {
|
|
6784
6753
|
return super.translateButtonsLabel(this.items);
|
|
6785
|
-
}),
|
|
6754
|
+
}), switchMap(() => {
|
|
6786
6755
|
if (!this.data.DisableSyncWorkflowStatus) {
|
|
6787
6756
|
// Set default status
|
|
6788
6757
|
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
6789
|
-
if (!this.group.zModel[
|
|
6758
|
+
if (!this.group.zModel['WFS_StatusName']) {
|
|
6790
6759
|
const params = {
|
|
6791
|
-
|
|
6760
|
+
WorkflowMasterCode: this.data.WorkflowCode,
|
|
6792
6761
|
};
|
|
6793
|
-
return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(
|
|
6762
|
+
return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(tap(res => {
|
|
6794
6763
|
if (res.Data) {
|
|
6795
|
-
ZComponentHelper.presetModelValue(
|
|
6796
|
-
ZComponentHelper.presetModelValue(
|
|
6797
|
-
ZComponentHelper.presetModelValue(
|
|
6764
|
+
ZComponentHelper.presetModelValue('WFS_StatusId', res.Data['Id'], this.group);
|
|
6765
|
+
ZComponentHelper.presetModelValue('WFS_StatusName', res.Data['Name'], this.group);
|
|
6766
|
+
ZComponentHelper.presetModelValue('WFS_StatusCode', res.Data['Code'], this.group);
|
|
6798
6767
|
this.workflowService.setCurrentDocumentStatus(res.Data);
|
|
6799
6768
|
}
|
|
6800
6769
|
}));
|
|
@@ -6802,10 +6771,10 @@ class ZworkflowbuttonsComponent extends ButtonFieldBase {
|
|
|
6802
6771
|
else {
|
|
6803
6772
|
// When loading also to get current Status Information if any.
|
|
6804
6773
|
const docInfoParam = {
|
|
6805
|
-
|
|
6806
|
-
|
|
6774
|
+
WorkflowMasterCode: this.data.WorkflowCode,
|
|
6775
|
+
DocumentId: documentId,
|
|
6807
6776
|
};
|
|
6808
|
-
this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(
|
|
6777
|
+
return this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(tap(res => {
|
|
6809
6778
|
this.workflowService.setCurrentDocumentStatus(res);
|
|
6810
6779
|
if (res.Data) {
|
|
6811
6780
|
this.workflowService.setCurrentDocumentStatus(res.Data);
|
|
@@ -6813,10 +6782,11 @@ class ZworkflowbuttonsComponent extends ButtonFieldBase {
|
|
|
6813
6782
|
}));
|
|
6814
6783
|
}
|
|
6815
6784
|
}
|
|
6785
|
+
return of(null);
|
|
6816
6786
|
})).subscribe();
|
|
6817
6787
|
}
|
|
6818
6788
|
catch (error) {
|
|
6819
|
-
console.error(
|
|
6789
|
+
console.error('Error:', error);
|
|
6820
6790
|
}
|
|
6821
6791
|
}
|
|
6822
6792
|
buttonClick(button) {
|
|
@@ -7138,9 +7108,7 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7138
7108
|
getzDataForzModel$.subscribe((zdata) => {
|
|
7139
7109
|
console.log(data.Name, ' - initial zData load: ', zdata);
|
|
7140
7110
|
if (this.group) {
|
|
7141
|
-
|
|
7142
|
-
this.group.afterLoadzDataOptions(this.group);
|
|
7143
|
-
}
|
|
7111
|
+
this.afterLoadzDataOptions();
|
|
7144
7112
|
}
|
|
7145
7113
|
this.isLoading = false;
|
|
7146
7114
|
});
|
|
@@ -7162,9 +7130,7 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7162
7130
|
this.autoSelectFirstOption(isRequired, optionData[0], fieldValue, zModel.Id);
|
|
7163
7131
|
}
|
|
7164
7132
|
if (this.group) {
|
|
7165
|
-
|
|
7166
|
-
this.group.afterLoadzDataOptions(this.group);
|
|
7167
|
-
}
|
|
7133
|
+
this.afterLoadzDataOptions();
|
|
7168
7134
|
}
|
|
7169
7135
|
this.isLoading = false;
|
|
7170
7136
|
});
|
|
@@ -7181,9 +7147,7 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7181
7147
|
setTimeout(function () {
|
|
7182
7148
|
thisComponent.autoSelectFirstOption(isRequired, optionData[0], fieldValue, thisComponent.group.zModel.Id);
|
|
7183
7149
|
if (this.group) {
|
|
7184
|
-
|
|
7185
|
-
this.group.afterLoadzDataOptions(this.group);
|
|
7186
|
-
}
|
|
7150
|
+
this.afterLoadzDataOptions();
|
|
7187
7151
|
}
|
|
7188
7152
|
}, 100);
|
|
7189
7153
|
}
|
|
@@ -7314,7 +7278,7 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7314
7278
|
this.onSearch({ component: null, text: value });
|
|
7315
7279
|
if (this.group) {
|
|
7316
7280
|
if (this.group.afterLoadzDataOptions) {
|
|
7317
|
-
this.group.afterLoadzDataOptions(this.group);
|
|
7281
|
+
this.group.afterLoadzDataOptions(this.group, this.data);
|
|
7318
7282
|
}
|
|
7319
7283
|
}
|
|
7320
7284
|
});
|
|
@@ -7331,9 +7295,7 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7331
7295
|
.subscribe(() => {
|
|
7332
7296
|
this.onSearch({ component: null, text: value });
|
|
7333
7297
|
if (this.group) {
|
|
7334
|
-
|
|
7335
|
-
this.group.afterLoadzDataOptions(this.group);
|
|
7336
|
-
}
|
|
7298
|
+
this.afterLoadzDataOptions();
|
|
7337
7299
|
}
|
|
7338
7300
|
this.isLoading = false;
|
|
7339
7301
|
});
|
|
@@ -7557,6 +7519,12 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7557
7519
|
}
|
|
7558
7520
|
}
|
|
7559
7521
|
}
|
|
7522
|
+
afterLoadzDataOptions() {
|
|
7523
|
+
if (this.group.afterLoadzDataOptions) {
|
|
7524
|
+
console.log("group.afterLoadzDataOptions triggered." + this.data);
|
|
7525
|
+
this.group.afterLoadzDataOptions(this.group, this.data);
|
|
7526
|
+
}
|
|
7527
|
+
}
|
|
7560
7528
|
}
|
|
7561
7529
|
ZselectmultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZselectmultipleComponent, deps: [{ token: ZComponentService }, { token: i2.ResourceApiService }, { token: i2.WebApiService }, { token: i2.CacheService }, { token: i2.FieldService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7562
7530
|
ZselectmultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZselectmultipleComponent, selector: "app-zselectmultiple", viewQueries: [{ propertyName: "comboboxComponent", first: true, predicate: ["comboboxComponent"], descendants: true }, { propertyName: "dropdownlistComponent", first: true, predicate: ["dropdownlistComponent"], descendants: true }, { propertyName: "multiselect", first: true, predicate: ["multiselect"], descendants: true }, { propertyName: "multiselecttree", first: true, predicate: ["multiselecttree"], descendants: true }, { propertyName: "selectComponent", first: true, predicate: ["selectComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"zselectmultiple-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <ionic-selectable *ngIf=\"isMobileScreen()\" #selectComponent item-content searchFailText=\"Nothing found :(\"\r\n headerColor=\"primary\" clearButtonText=\"Clear\" [(ngModel)]=\"group.zModel[data.Value]\" [id]=\"data.Value\"\r\n [items]=\"getItemsData()\" [itemValueField]=\"itemValueField\" [itemTextField]=\"itemTextField\"\r\n [canAddItem]=\"!!data.OnAddItem\" [canClear]=\"true\" [placeholder]=\"data.PlaceHolder\"\r\n [canSearch]=\"!data['disable-search']\" [shouldFocusSearchbar]=\"!data['disable-search']\"\r\n [hasInfiniteScroll]=\"!!data.HasInfiniteScroll\" [isMultiple]=\"data.Multiple\"\r\n [isEnabled]=\"!(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [shouldStoreItemValue]=\"true\" (onSearch)=\"onSearch($event)\" (onInfiniteScroll)=\"getInfiniteData($event)\"\r\n (onAddItem)=\"onAddItem($event)\" (onChange)=\"onChange_mobile($event)\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n\r\n <ng-template ionicSelectableItemIconTemplate let-item=\"item\" let-isItemSelected=\"isItemSelected\">\r\n <fa-icon slot=\"start\" class=\"isItemSelected e1tag-style2\" size=\"sm\" [icon]=\"['far', isItemSelected ? 'check-circle': 'circle']\"\r\n [styles]=\"{'color': isItemSelected ? 'dodgerBlue' : 'lightGray'}\" [style]=\"componentProperties.style.style2\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableCloseButtonTemplate>\r\n <!-- <ion-icon name=\"close-circle\"></ion-icon> -->\r\n <fa-icon [icon]=\"'times-circle'\" size=\"md\" [style]=\"componentProperties.style.style3\" class=\"e1tag-style3\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableTitleTemplate>\r\n <span class=e1tag-style4 [style]=\"componentProperties.style.style4\">{{data.Label}}</span>\r\n <ion-text *ngIf=\"getIsRequiredValue()\" color=\"danger\">*</ion-text>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableItemTemplate let-item=\"item\">\r\n <span class=\"e1tag-style5\" [style]=\"componentProperties.style.style5\">{{ getItemTemplate(item, data, group, itemValueField, itemTextField) }}</span>\r\n </ng-template>\r\n </ionic-selectable>\r\n <kendo-combobox *ngIf=\"!isMobileScreen() && componentType == 'combobox'\"\r\n class=\"input-field e1tag-style1\"\r\n #comboboxComponent\r\n [data]=\"getItemsData() | zselectTranslationParser : itemTextField : data : group | async\"\r\n [valueField]=\"itemValueField\"\r\n [textField]=\"itemTextField\"\r\n [formControlName]=\"data.Value\"\r\n [valuePrimitive]=\"true\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [allowCustom]=\"allowCustomValue\"\r\n [kendoDropDownFilter]=\"filterSettings\"\r\n [suggest]=\"true\"\r\n [filterable]=\"data.Filterable == false ? false : true\"\r\n [openOnFocus]=\"disableOpenOnFocus(comboboxComponent)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngClass]=\"data.Class\"\r\n [loading]=\"isLoading\"\r\n (valueChange)=\"onChange_desktop($event)\"\r\n (filterChange)=\"handleFilter($event)\"\r\n [virtual]=\"data.IsEnableVirtualization == true ? virtual : null\"\r\n (open)=\"handleOpen()\"\r\n (close)=\"handleClose()\"\r\n (blur)=\"handleBlur()\"\r\n [style]=\"componentProperties.style.style1\"\r\n [clearButton]=\"data.ClearButton == false ? false : true\">\r\n <ng-template kendoComboBoxItemTemplate let-dataItem>\r\n <span class=\"e1tag-style5\" [class.zselect-virtualization]=\"data.IsEnableVirtualization\" [style]=\"componentProperties.style.style5\">{{ getItemTemplate(dataItem, data, group, itemValueField, itemTextField) }}</span>\r\n <!-- <span class=\"template\">{{ dataItem.value }}</span> {{ dataItem.text }} -->\r\n </ng-template>\r\n </kendo-combobox>\r\n <kendo-multiselect *ngIf=\"!isMobileScreen() && componentType == 'multiselect'\"\r\n class=\"input-field e1tag-style1\"\r\n #multiselect\r\n [data]=\"getItemsData() | zselectTranslationParser : itemTextField : data : group | async\"\r\n [valueField]=\"itemValueField\"\r\n [textField]=\"itemTextField\"\r\n [formControlName]=\"data.Value\"\r\n [valuePrimitive]=\"true\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [allowCustom]=\"allowCustomValue\"\r\n [filterable]=\"data.Filterable == false ? false : true\"\r\n [checkboxes]=\"data.EnableCheckbox\"\r\n [loading]=\"isLoading\"\r\n [autoClose]=\"autoClose\"\r\n [kendoDropDownFilter]=\"filterSettings\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngClass]=\"data.Class\"\r\n (valueChange)=\"onChange_desktop($event)\"\r\n (filterChange)=\"handleFilter($event)\"\r\n (open)=\"handleOpen()\"\r\n (close)=\"handleClose()\"\r\n (blur)=\"handleBlur()\"\r\n [style]=\"componentProperties.style.style1\"\r\n [clearButton]=\"data.ClearButton == false ? false : true\">\r\n <ng-template kendoMultiSelectItemTemplate let-dataItem>\r\n <span class=\"e1tag-style5\" [style]=\"componentProperties.style.style5\">{{ getItemTemplate(dataItem, data, group, itemValueField, itemTextField) }}</span>\r\n </ng-template>\r\n </kendo-multiselect>\r\n <kendo-multiselecttree *ngIf=\"!isMobileScreen() && componentType == 'multiselecttree'\"\r\n class=\"input-field e1tag-style1\"\r\n #multiselecttree\r\n kendoMultiSelectTreeExpandable\r\n [placeholder]=\"data.PlaceHolder\"\r\n [kendoMultiSelectTreeHierarchyBinding]=\"getItemsData() | zselectTranslationParser : itemTextField : data : group | async\"\r\n [kendoMultiSelectTreeSummaryTag]=\"componentSettings.kendoMultiSelectTreeSummaryTag\"\r\n childrenField=\"Value\"\r\n [hasChildren]=\"hasChildren\"\r\n [textField]=\"itemTextField\"\r\n [valueField]=\"itemValueField\"\r\n [valuePrimitive]=\"true\"\r\n (valueChange)=\"onChange_desktop($event)\"\r\n [dataItems]=\"getDataItems()\"\r\n [formControlName]=\"data.Value\"\r\n [loading]=\"isLoading\"\r\n [autoClose]=\"autoClose\"\r\n [expandOnFilter]=\"componentSettings.expandOnFilter\"\r\n [filterable]=\"data.Filterable == false ? false : true\"\r\n (filterChange)=\"handleMultiSelectTreeFilter($event)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngClass]=\"data.Class\"\r\n (open)=\"handleOpen()\"\r\n (close)=\"handleClose()\"\r\n (blur)=\"handleBlur()\"\r\n [style]=\"componentProperties.style.style1\"\r\n [(expandedKeys)]=\"expandedKeys\"\r\n [popupSettings]=\"componentSettings.popupSettings\"\r\n [clearButton]=\"data.ClearButton == false ? false : true\">\r\n <ng-template kendoMultiSelectTreeNoDataTemplate>\r\n <h4>\r\n <span class=\"k-icon k-i-warning\"></span><br /><br />\r\n No record found.\r\n </h4>\r\n </ng-template>\r\n </kendo-multiselecttree>\r\n <kendo-dropdownlist *ngIf=\"!isMobileScreen() && componentType == 'dropdownlist'\"\r\n class=\"input-field e1tag-style1\"\r\n #dropdownlistComponent\r\n [data]=\"getItemsData() | zselectTranslationParser : itemTextField : data : group | async\"\r\n [valueField]=\"itemValueField\"\r\n [textField]=\"itemTextField\"\r\n [formControlName]=\"data.Value\"\r\n [valuePrimitive]=\"true\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [allowCustom]=\"allowCustomValue\"\r\n [kendoDropDownFilter]=\"filterSettings\"\r\n [suggest]=\"true\"\r\n [filterable]=\"data.Filterable == false ? false : true\"\r\n [openOnFocus]=\"disableOpenOnFocus(comboboxComponent)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngClass]=\"data.Class\"\r\n [loading]=\"isLoading\"\r\n (valueChange)=\"onChange_desktop($event)\"\r\n (filterChange)=\"handleFilter($event)\"\r\n [virtual]=\"data.IsEnableVirtualization == true ? virtual : null\"\r\n (open)=\"handleOpen()\"\r\n (close)=\"handleClose()\"\r\n (blur)=\"handleBlur()\"\r\n [style]=\"componentProperties.style.style1\"\r\n [clearButton]=\"data.ClearButton == false ? false : true\">\r\n <ng-template kendoDropDownListItemTemplate let-dataItem>\r\n <span class=\"e1tag-style5\" [class.zselect-virtualization]=\"data.IsEnableVirtualization\" [style]=\"componentProperties.style.style5\">{{ getItemTemplate(dataItem, data, group, itemValueField, itemTextField) }}</span>\r\n <!-- <span class=\"template\">{{ dataItem.value }}</span> {{ dataItem.text }} -->\r\n </ng-template>\r\n </kendo-dropdownlist>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-combobox.k-multiselect,:host ::ng-deep kendo-dropdownlist.k-multiselect,:host ::ng-deep kendo-multiselect.k-multiselect{height:auto}:host ::ng-deep kendo-combobox .k-searchbar,:host ::ng-deep kendo-dropdownlist .k-searchbar,:host ::ng-deep kendo-multiselect .k-searchbar{margin:auto}:host ::ng-deep kendo-combobox .k-searchbar+.k-icon,:host ::ng-deep kendo-dropdownlist .k-searchbar+.k-icon,:host ::ng-deep kendo-multiselect .k-searchbar+.k-icon{margin:auto}:host ::ng-deep kendo-combobox .kendo-combobox-item-template,:host ::ng-deep kendo-dropdownlist .kendo-combobox-item-template,:host ::ng-deep kendo-multiselect .kendo-combobox-item-template{height:var(--input-field-height)!important}:host ::ng-deep kendo-combobox.disabled>.k-dropdown-wrap,:host ::ng-deep kendo-dropdownlist.disabled>.k-dropdown-wrap,:host ::ng-deep kendo-multiselect.disabled>.k-dropdown-wrap{background:transparent}:host ::ng-deep kendo-combobox:focus-within,:host ::ng-deep kendo-dropdownlist:focus-within,:host ::ng-deep kendo-multiselect:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)}:host ::ng-deep kendo-combobox.no-border,:host ::ng-deep kendo-dropdownlist.no-border,:host ::ng-deep kendo-multiselect.no-border{box-shadow:none!important;border:none!important}:host ::ng-deep kendo-combobox.no-border>.k-input-button,:host ::ng-deep kendo-dropdownlist.no-border>.k-input-button,:host ::ng-deep kendo-multiselect.no-border>.k-input-button{background:none;border:none}:host ::ng-deep kendo-combobox.no-background,:host ::ng-deep kendo-dropdownlist.no-background,:host ::ng-deep kendo-multiselect.no-background{background:none}:host ::ng-deep kendo-combobox.right-align>kendo-searchbar>input,:host ::ng-deep kendo-dropdownlist.right-align>kendo-searchbar>input,:host ::ng-deep kendo-multiselect.right-align>kendo-searchbar>input{text-align:right}:host ::ng-deep kendo-combobox.right-align>.k-input-inner,:host ::ng-deep kendo-dropdownlist.right-align>.k-input-inner,:host ::ng-deep kendo-multiselect.right-align>.k-input-inner{text-align:right}:host ::ng-deep kendo-dropdownlist{background:white}:host ::ng-deep kendo-dropdownlist>span.k-input-inner>.k-input-value-text{width:0px}fa-icon.isItemSelected{display:inline-block;width:1em;height:1em;contain:strict;fill:currentcolor;box-sizing:content-box!important;font-size:20px;margin-top:10px;margin-bottom:14px;margin-right:unset;margin-inline-end:20px}.gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.divselectmultiple{justify-content:space-between;width:99%;color:#000}.zselect-virtualization{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"], components: [{ type: i3$5.IonicSelectableComponent, selector: "ionic-selectable", inputs: ["items", "modalCssClass", "modalEnterAnimation", "modalLeaveAnimation", "isConfirmButtonEnabled", "itemValueField", "itemTextField", "groupValueField", "groupTextField", "canSearch", "hasInfiniteScroll", "hasVirtualScroll", "virtualScrollApproxItemHeight", "searchPlaceholder", "placeholder", "searchFailText", "clearButtonText", "addButtonText", "confirmButtonText", "closeButtonText", "shouldFocusSearchbar", "headerColor", "groupColor", "closeButtonSlot", "itemIconSlot", "searchDebounce", "disabledItems", "shouldStoreItemValue", "canSaveItem", "canDeleteItem", "virtualScrollHeaderFn", "isEnabled", "shouldBackdropClose", "hasConfirmButton", "isOnSearchEnabled", "canClear", "isMultiple", "canAddItem"], outputs: ["itemsChange", "onChange", "onSearch", "onSearchFail", "onSearchSuccess", "onInfiniteScroll", "onOpen", "onClose", "onSelect", "onClear", "onSaveItem", "onDeleteItem", "onAddItem"] }, { type: i5$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i2$1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i6$2.ComboBoxComponent, selector: "kendo-combobox", inputs: ["focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "popupSettings", "listHeight", "iconClass", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoComboBox"] }, { type: i6$2.MultiSelectComponent, selector: "kendo-multiselect", inputs: ["focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { type: i6$2.MultiSelectTreeComponent, selector: "kendo-multiselecttree", inputs: ["tabindex", "size", "rounded", "fillMode", "popupSettings", "checkableSettings", "data", "value", "dataItems", "textField", "valueField", "valueDepth", "loading", "placeholder", "listHeight", "disabled", "readonly", "valuePrimitive", "loadOnDemand", "focusableId", "clearButton", "filterable", "checkAll", "hasChildren", "fetchChildren", "isNodeExpanded", "isNodeVisible", "itemDisabled", "tagMapper"], outputs: ["focus", "blur", "open", "opened", "close", "closed", "nodeExpand", "nodeCollapse", "valueChange", "removeTag", "filterChange"], exportAs: ["kendoMultiSelectTree"] }, { type: i6$2.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3$5.IonicSelectableItemIconTemplateDirective, selector: "[ionicSelectableItemIconTemplate]" }, { type: i3$5.IonicSelectableCloseButtonTemplateDirective, selector: "[ionicSelectableCloseButtonTemplate]" }, { type: i3$5.IonicSelectableTitleTemplateDirective, selector: "[ionicSelectableTitleTemplate]" }, { type: i3$5.IonicSelectableItemTemplateDirective, selector: "[ionicSelectableItemTemplate]" }, { type: OpenOnFocusDirective, selector: "kendo-combobox[openOnFocus]", inputs: ["openOnFocus"] }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6$2.FilterDirective, selector: "[kendoDropDownFilter]", inputs: ["data", "kendoDropDownFilter", "filterable"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i6$2.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { type: i6$2.DropDownTreesExpandDirective, selector: "[kendoDropDownTreeExpandable], [kendoMultiSelectTreeExpandable]", inputs: ["isNodeExpanded"] }, { type: i6$2.MultiSelectTreeHierarchyBindingDirective, selector: "[kendoMultiSelectTreeHierarchyBinding]", inputs: ["kendoMultiSelectTreeHierarchyBinding"] }, { type: i6$2.MultiSelectTreeSummaryTagDirective, selector: "[kendoMultiSelectTreeSummaryTag]", inputs: ["kendoMultiSelectTreeSummaryTag"] }, { type: i6$2.NoDataTemplateDirective, selector: "[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]" }], pipes: { "async": i5.AsyncPipe, "zselectTranslationParser": ZSelectTranslationParser } });
|
|
@@ -8883,7 +8851,6 @@ class ZgridComponent extends DataListingFieldBase {
|
|
|
8883
8851
|
console.warn('Invalid/Empty grid(' + this.data.Name + ') data to generate column');
|
|
8884
8852
|
}
|
|
8885
8853
|
else {
|
|
8886
|
-
const fieldName = this.data['FieldElementName'];
|
|
8887
8854
|
this.columns = [];
|
|
8888
8855
|
const generateHiddenColumns = [];
|
|
8889
8856
|
ZComponentHelper.getGridColumns({
|
|
@@ -9151,6 +9118,9 @@ class ZgridComponent extends DataListingFieldBase {
|
|
|
9151
9118
|
this.inlineEditedFormGroups = {};
|
|
9152
9119
|
this.zgrid.getDataBinding();
|
|
9153
9120
|
}
|
|
9121
|
+
else {
|
|
9122
|
+
console.warn('this.zgrid is undefined.');
|
|
9123
|
+
}
|
|
9154
9124
|
}
|
|
9155
9125
|
getGridData() {
|
|
9156
9126
|
return this.isUseLocalData() ? (this.zgrid.data || this.zgrid.originalData) : (this.zgrid.grid.data && this.zgrid.grid.data.data ? this.zgrid.grid.data.data : []);
|
|
@@ -9470,7 +9440,7 @@ class ZgridComponent extends DataListingFieldBase {
|
|
|
9470
9440
|
this.closeEditor(sender);
|
|
9471
9441
|
// loop all column to get validation and create form control
|
|
9472
9442
|
const colFormControl = {};
|
|
9473
|
-
this.
|
|
9443
|
+
this.columns.forEach(col => {
|
|
9474
9444
|
const validators = [];
|
|
9475
9445
|
if (col.IsRequired) {
|
|
9476
9446
|
validators.push(Validators.required);
|
|
@@ -9543,7 +9513,7 @@ class ZgridComponent extends DataListingFieldBase {
|
|
|
9543
9513
|
this.closeEditor(sender);
|
|
9544
9514
|
// loop all column to get validation and create form control, append current row value
|
|
9545
9515
|
const colFormControl = {};
|
|
9546
|
-
this.
|
|
9516
|
+
this.columns.forEach(col => {
|
|
9547
9517
|
const validators = [];
|
|
9548
9518
|
if (col.IsRequired) {
|
|
9549
9519
|
validators.push(Validators.required);
|
|
@@ -11492,10 +11462,10 @@ class ZtreeComponent extends DataListingFieldBase {
|
|
|
11492
11462
|
}
|
|
11493
11463
|
}
|
|
11494
11464
|
ZtreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZtreeComponent, deps: [{ token: ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11495
|
-
ZtreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZtreeComponent, selector: "app-ztree", viewQueries: [{ propertyName: "nodetemplate", first: true, predicate: ["nodetemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"width:100%\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-treeview [nodes]=\"getItems()\"\r\n kendoTreeViewExpandable\r\n [kendoTreeViewSelectable]=\"selection\"\r\n kendoTreeViewDragAndDrop\r\n kendoTreeViewDragAndDropEditing\r\n [isExpanded]=\"isExpanded\"\r\n (collapse)=\"handleCollapse($event)\"\r\n (expand)=\"handleExpand($event)\"\r\n (nodeDrop)=\"handleNodeDrop($event)\"\r\n (nodeDragEnd)=\"handleNodeDragEnd($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [(selectedKeys)]=\"selectedKeys\"\r\n kendoTreeViewHierarchyBinding\r\n childrenField=\"Value\"\r\n textField=\"Name\"\r\n [selectBy]=\"data.SelectOptions\"\r\n [filterable]=\"data.Filterable\"\r\n (filterChange)=\"handleFilter($event)\"\r\n [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\"\r\n [ngClass]=\"data.Class\"\r\n [kendoTreeViewCheckable]=\"checkableSettings\"\r\n [checkBy]=\"data.SelectOptions\"\r\n [(checkedKeys)]=\"checkedKeys\"\r\n (checkedChange)=\"onCheckedChange($event)\"\r\n [kendoTreeViewDisable]=\"data.SelectOptions\"\r\n [isChecked]=\"isChecked\"\r\n [(disabledKeys)]=\"disabledCheckBoxKeys\"\r\n [disableParentNodesOnly]=\"data.DisableParentNodesOnly\">\r\n <ng-template kendoTreeViewNodeTemplate let-dataItem #nodetemplate>\r\n <div class=\"tree-content-container\">\r\n <ion-button *ngIf=\"!!data.OnAddNode && !data.isHideAllAddNode\"\r\n (click)=\"onAddNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 2px;\"\r\n mat-raised-button\r\n color=\"primary\"\r\n size=\"medium\"\r\n [hidden]=\"!!dataItem.OnAddNodeVisible\"\r\n [style]=\"componentProperties.style.style2\"\r\n class=\"e1tag-style2\">\r\n <fa-icon [icon]=\"'plus'\"></fa-icon>\r\n </ion-button>\r\n <ion-button *ngIf=\"!!data.OnRemoveNode && !data.isHideAllRemoveNode\"\r\n (click)=\"onRemoveNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 10px;\"\r\n color=\"danger\"\r\n mat-raised-button\r\n size=\"medium\"\r\n [hidden]=\"!!dataItem.OnRemoveNodeVisible\"\r\n [style]=\"componentProperties.style.style3\"\r\n class=\"e1tag-style3\">\r\n <fa-icon [icon]=\"'minus'\"></fa-icon>\r\n </ion-button>\r\n <span class=\"btn-seperator e1tag-style7\" [style]=\"componentProperties.style.style7\"></span>\r\n <span *ngFor=\"let icon of dataItem.IconList\">\r\n <fa-icon class=\"e1tag-style5 left-icon\" [icon]=\"icon\" [style]=\"componentProperties.style.style5\"></fa-icon>\r\n </span>\r\n <ion-label [style]=\"componentProperties.style.style4\" class=\"e1tag-style4\" [ngClass]=\"dataItem.class\">\r\n <div [style]=\"componentProperties.style.style6\" class=\"e1tag-style6\" [innerHTML]=\"getTemplate(dataItem, data, group) | htmlSanitize\"></div>\r\n </ion-label>\r\n </div>\r\n </ng-template>\r\n </kendo-treeview>\r\n</div>\r\n", styles: [":host ::ng-deep .k-treeview .k-treeview-leaf{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.15);color:var(--ion-color-primary-shade);border:1px solid rgba(var(--ion-color-primary-rgb),1);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .k-treeview-leaf.k-selected,:host ::ng-deep .k-treeview .k-treeview-leaf.k-state-selected{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.5);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .k-treeview-leaf:hover,:host ::ng-deep .k-treeview .k-treeview-leaf.k-hover .k-treeview-leaf.k-state-hover{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.1);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .tree-content-container{display:flex;align-items:center;justify-content:center}:host ::ng-deep .k-treeview .btn-seperator{width:10px;display:inline-block}.left-icon{margin-right:8px}\n"], components: [{ type: i2$9.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { type: i2$1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i5$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i2$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$9.ExpandDirective, selector: "[kendoTreeViewExpandable]", inputs: ["isExpanded", "expandBy", "expandOnFilter", "expandedKeys"], outputs: ["expandedKeysChange"] }, { type: i2$9.DragAndDropDirective, selector: "[kendoTreeViewDragAndDrop]", inputs: ["allowCopy", "dropZoneTreeViews", "startDragAfter", "autoScroll"] }, { type: i2$9.DragAndDropEditingDirective, selector: "[kendoTreeViewDragAndDropEditing]", inputs: ["editService"] }, { type: i2$9.HierarchyBindingDirective, selector: "[kendoTreeViewHierarchyBinding]", inputs: ["childrenField", "nodes", "isVisible", "loadOnDemand"] }, { type: i2$9.SelectDirective, selector: "[kendoTreeViewSelectable]", inputs: ["isSelected", "selectBy", "kendoTreeViewSelectable", "selectedKeys"], outputs: ["selectedKeysChange"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i2$9.CheckDirective, selector: "[kendoTreeViewCheckable]", inputs: ["isChecked", "checkBy", "checkedKeys", "kendoTreeViewCheckable"], outputs: ["checkedKeysChange"] }, { type: i2$9.DisableDirective, selector: "[kendoTreeViewDisable]", inputs: ["isDisabled", "kendoTreeViewDisable", "disabledKeys"] }, { type: i2$9.NodeTemplateDirective, selector: "[kendoTreeViewNodeTemplate]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "htmlSanitize": HtmlSanitizePipe } });
|
|
11465
|
+
ZtreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZtreeComponent, selector: "app-ztree", viewQueries: [{ propertyName: "nodetemplate", first: true, predicate: ["nodetemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"width:100%\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-treeview [nodes]=\"getItems()\"\r\n kendoTreeViewExpandable\r\n [kendoTreeViewSelectable]=\"selection\"\r\n kendoTreeViewDragAndDrop\r\n kendoTreeViewDragAndDropEditing\r\n [isExpanded]=\"isExpanded\"\r\n (collapse)=\"handleCollapse($event)\"\r\n (expand)=\"handleExpand($event)\"\r\n (nodeDrop)=\"handleNodeDrop($event)\"\r\n (nodeDragEnd)=\"handleNodeDragEnd($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [(selectedKeys)]=\"selectedKeys\"\r\n kendoTreeViewHierarchyBinding\r\n childrenField=\"Value\"\r\n textField=\"Name\"\r\n [selectBy]=\"data.SelectOptions\"\r\n [filterable]=\"data.Filterable\"\r\n (filterChange)=\"handleFilter($event)\"\r\n [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\"\r\n [ngClass]=\"data.Class\"\r\n [kendoTreeViewCheckable]=\"checkableSettings\"\r\n [checkBy]=\"data.SelectOptions\"\r\n [(checkedKeys)]=\"checkedKeys\"\r\n (checkedChange)=\"onCheckedChange($event)\"\r\n [kendoTreeViewDisable]=\"data.SelectOptions\"\r\n [isChecked]=\"isChecked\"\r\n [(disabledKeys)]=\"disabledCheckBoxKeys\"\r\n [disableParentNodesOnly]=\"data.DisableParentNodesOnly\"\r\n [expandDisabledNodes]=\"data.ExpandDisabledNodes\">\r\n <ng-template kendoTreeViewNodeTemplate let-dataItem #nodetemplate>\r\n <div class=\"tree-content-container\">\r\n <ion-button *ngIf=\"!!data.OnAddNode && !data.isHideAllAddNode\"\r\n (click)=\"onAddNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 2px;\"\r\n mat-raised-button\r\n color=\"primary\"\r\n size=\"medium\"\r\n [hidden]=\"!!dataItem.OnAddNodeVisible\"\r\n [style]=\"componentProperties.style.style2\"\r\n class=\"e1tag-style2\">\r\n <fa-icon [icon]=\"'plus'\"></fa-icon>\r\n </ion-button>\r\n <ion-button *ngIf=\"!!data.OnRemoveNode && !data.isHideAllRemoveNode\"\r\n (click)=\"onRemoveNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 10px;\"\r\n color=\"danger\"\r\n mat-raised-button\r\n size=\"medium\"\r\n [hidden]=\"!!dataItem.OnRemoveNodeVisible\"\r\n [style]=\"componentProperties.style.style3\"\r\n class=\"e1tag-style3\">\r\n <fa-icon [icon]=\"'minus'\"></fa-icon>\r\n </ion-button>\r\n <span class=\"btn-seperator e1tag-style7\" [style]=\"componentProperties.style.style7\"></span>\r\n <span *ngFor=\"let icon of dataItem.IconList\">\r\n <fa-icon class=\"e1tag-style5 left-icon\" [icon]=\"icon\" [style]=\"componentProperties.style.style5\"></fa-icon>\r\n </span>\r\n <ion-label [style]=\"componentProperties.style.style4\" class=\"e1tag-style4\" [ngClass]=\"dataItem.class\">\r\n <div [style]=\"componentProperties.style.style6\" class=\"e1tag-style6\" [innerHTML]=\"getTemplate(dataItem, data, group) | htmlSanitize\"></div>\r\n </ion-label>\r\n </div>\r\n </ng-template>\r\n </kendo-treeview>\r\n</div>\r\n", styles: [":host ::ng-deep .k-treeview .k-treeview-leaf{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.15);color:var(--ion-color-primary-shade);border:1px solid rgba(var(--ion-color-primary-rgb),1);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .k-treeview-leaf.k-selected,:host ::ng-deep .k-treeview .k-treeview-leaf.k-state-selected{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.5);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .k-treeview-leaf:hover,:host ::ng-deep .k-treeview .k-treeview-leaf.k-hover .k-treeview-leaf.k-state-hover{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.1);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .tree-content-container{display:flex;align-items:center;justify-content:center}:host ::ng-deep .k-treeview .btn-seperator{width:10px;display:inline-block}.left-icon{margin-right:8px}\n"], components: [{ type: i2$9.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "isExpanded", "isSelected", "isVisible", "navigable", "children", "loadOnDemand", "filterable", "filter", "size", "disableParentNodesOnly"], outputs: ["childrenLoaded", "blur", "focus", "expand", "collapse", "nodeDragStart", "nodeDrag", "filterStateChange", "nodeDrop", "nodeDragEnd", "addItem", "removeItem", "checkedChange", "selectionChange", "filterChange", "nodeClick", "nodeDblClick"], exportAs: ["kendoTreeView"] }, { type: i2$1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i5$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i2$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$9.ExpandDirective, selector: "[kendoTreeViewExpandable]", inputs: ["isExpanded", "expandBy", "expandOnFilter", "expandedKeys"], outputs: ["expandedKeysChange"] }, { type: i2$9.DragAndDropDirective, selector: "[kendoTreeViewDragAndDrop]", inputs: ["allowCopy", "dropZoneTreeViews", "startDragAfter", "autoScroll"] }, { type: i2$9.DragAndDropEditingDirective, selector: "[kendoTreeViewDragAndDropEditing]", inputs: ["editService"] }, { type: i2$9.HierarchyBindingDirective, selector: "[kendoTreeViewHierarchyBinding]", inputs: ["childrenField", "nodes", "isVisible", "loadOnDemand"] }, { type: i2$9.SelectDirective, selector: "[kendoTreeViewSelectable]", inputs: ["isSelected", "selectBy", "kendoTreeViewSelectable", "selectedKeys"], outputs: ["selectedKeysChange"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i2$9.CheckDirective, selector: "[kendoTreeViewCheckable]", inputs: ["isChecked", "checkBy", "checkedKeys", "kendoTreeViewCheckable"], outputs: ["checkedKeysChange"] }, { type: i2$9.DisableDirective, selector: "[kendoTreeViewDisable]", inputs: ["isDisabled", "kendoTreeViewDisable", "disabledKeys"] }, { type: i2$9.NodeTemplateDirective, selector: "[kendoTreeViewNodeTemplate]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "htmlSanitize": HtmlSanitizePipe } });
|
|
11496
11466
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZtreeComponent, decorators: [{
|
|
11497
11467
|
type: Component,
|
|
11498
|
-
args: [{ selector: "app-ztree", template: "<div style=\"width:100%\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-treeview [nodes]=\"getItems()\"\r\n kendoTreeViewExpandable\r\n [kendoTreeViewSelectable]=\"selection\"\r\n kendoTreeViewDragAndDrop\r\n kendoTreeViewDragAndDropEditing\r\n [isExpanded]=\"isExpanded\"\r\n (collapse)=\"handleCollapse($event)\"\r\n (expand)=\"handleExpand($event)\"\r\n (nodeDrop)=\"handleNodeDrop($event)\"\r\n (nodeDragEnd)=\"handleNodeDragEnd($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [(selectedKeys)]=\"selectedKeys\"\r\n kendoTreeViewHierarchyBinding\r\n childrenField=\"Value\"\r\n textField=\"Name\"\r\n [selectBy]=\"data.SelectOptions\"\r\n [filterable]=\"data.Filterable\"\r\n (filterChange)=\"handleFilter($event)\"\r\n [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\"\r\n [ngClass]=\"data.Class\"\r\n [kendoTreeViewCheckable]=\"checkableSettings\"\r\n [checkBy]=\"data.SelectOptions\"\r\n [(checkedKeys)]=\"checkedKeys\"\r\n (checkedChange)=\"onCheckedChange($event)\"\r\n [kendoTreeViewDisable]=\"data.SelectOptions\"\r\n [isChecked]=\"isChecked\"\r\n [(disabledKeys)]=\"disabledCheckBoxKeys\"\r\n [disableParentNodesOnly]=\"data.DisableParentNodesOnly\">\r\n <ng-template kendoTreeViewNodeTemplate let-dataItem #nodetemplate>\r\n <div class=\"tree-content-container\">\r\n <ion-button *ngIf=\"!!data.OnAddNode && !data.isHideAllAddNode\"\r\n (click)=\"onAddNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 2px;\"\r\n mat-raised-button\r\n color=\"primary\"\r\n size=\"medium\"\r\n [hidden]=\"!!dataItem.OnAddNodeVisible\"\r\n [style]=\"componentProperties.style.style2\"\r\n class=\"e1tag-style2\">\r\n <fa-icon [icon]=\"'plus'\"></fa-icon>\r\n </ion-button>\r\n <ion-button *ngIf=\"!!data.OnRemoveNode && !data.isHideAllRemoveNode\"\r\n (click)=\"onRemoveNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 10px;\"\r\n color=\"danger\"\r\n mat-raised-button\r\n size=\"medium\"\r\n [hidden]=\"!!dataItem.OnRemoveNodeVisible\"\r\n [style]=\"componentProperties.style.style3\"\r\n class=\"e1tag-style3\">\r\n <fa-icon [icon]=\"'minus'\"></fa-icon>\r\n </ion-button>\r\n <span class=\"btn-seperator e1tag-style7\" [style]=\"componentProperties.style.style7\"></span>\r\n <span *ngFor=\"let icon of dataItem.IconList\">\r\n <fa-icon class=\"e1tag-style5 left-icon\" [icon]=\"icon\" [style]=\"componentProperties.style.style5\"></fa-icon>\r\n </span>\r\n <ion-label [style]=\"componentProperties.style.style4\" class=\"e1tag-style4\" [ngClass]=\"dataItem.class\">\r\n <div [style]=\"componentProperties.style.style6\" class=\"e1tag-style6\" [innerHTML]=\"getTemplate(dataItem, data, group) | htmlSanitize\"></div>\r\n </ion-label>\r\n </div>\r\n </ng-template>\r\n </kendo-treeview>\r\n</div>\r\n", styles: [":host ::ng-deep .k-treeview .k-treeview-leaf{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.15);color:var(--ion-color-primary-shade);border:1px solid rgba(var(--ion-color-primary-rgb),1);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .k-treeview-leaf.k-selected,:host ::ng-deep .k-treeview .k-treeview-leaf.k-state-selected{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.5);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .k-treeview-leaf:hover,:host ::ng-deep .k-treeview .k-treeview-leaf.k-hover .k-treeview-leaf.k-state-hover{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.1);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .tree-content-container{display:flex;align-items:center;justify-content:center}:host ::ng-deep .k-treeview .btn-seperator{width:10px;display:inline-block}.left-icon{margin-right:8px}\n"] }]
|
|
11468
|
+
args: [{ selector: "app-ztree", template: "<div style=\"width:100%\" [style]=\"componentProperties.style.style\" class=\"e1tag-style\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-treeview [nodes]=\"getItems()\"\r\n kendoTreeViewExpandable\r\n [kendoTreeViewSelectable]=\"selection\"\r\n kendoTreeViewDragAndDrop\r\n kendoTreeViewDragAndDropEditing\r\n [isExpanded]=\"isExpanded\"\r\n (collapse)=\"handleCollapse($event)\"\r\n (expand)=\"handleExpand($event)\"\r\n (nodeDrop)=\"handleNodeDrop($event)\"\r\n (nodeDragEnd)=\"handleNodeDragEnd($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [(selectedKeys)]=\"selectedKeys\"\r\n kendoTreeViewHierarchyBinding\r\n childrenField=\"Value\"\r\n textField=\"Name\"\r\n [selectBy]=\"data.SelectOptions\"\r\n [filterable]=\"data.Filterable\"\r\n (filterChange)=\"handleFilter($event)\"\r\n [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\"\r\n [ngClass]=\"data.Class\"\r\n [kendoTreeViewCheckable]=\"checkableSettings\"\r\n [checkBy]=\"data.SelectOptions\"\r\n [(checkedKeys)]=\"checkedKeys\"\r\n (checkedChange)=\"onCheckedChange($event)\"\r\n [kendoTreeViewDisable]=\"data.SelectOptions\"\r\n [isChecked]=\"isChecked\"\r\n [(disabledKeys)]=\"disabledCheckBoxKeys\"\r\n [disableParentNodesOnly]=\"data.DisableParentNodesOnly\"\r\n [expandDisabledNodes]=\"data.ExpandDisabledNodes\">\r\n <ng-template kendoTreeViewNodeTemplate let-dataItem #nodetemplate>\r\n <div class=\"tree-content-container\">\r\n <ion-button *ngIf=\"!!data.OnAddNode && !data.isHideAllAddNode\"\r\n (click)=\"onAddNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 2px;\"\r\n mat-raised-button\r\n color=\"primary\"\r\n size=\"medium\"\r\n [hidden]=\"!!dataItem.OnAddNodeVisible\"\r\n [style]=\"componentProperties.style.style2\"\r\n class=\"e1tag-style2\">\r\n <fa-icon [icon]=\"'plus'\"></fa-icon>\r\n </ion-button>\r\n <ion-button *ngIf=\"!!data.OnRemoveNode && !data.isHideAllRemoveNode\"\r\n (click)=\"onRemoveNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 10px;\"\r\n color=\"danger\"\r\n mat-raised-button\r\n size=\"medium\"\r\n [hidden]=\"!!dataItem.OnRemoveNodeVisible\"\r\n [style]=\"componentProperties.style.style3\"\r\n class=\"e1tag-style3\">\r\n <fa-icon [icon]=\"'minus'\"></fa-icon>\r\n </ion-button>\r\n <span class=\"btn-seperator e1tag-style7\" [style]=\"componentProperties.style.style7\"></span>\r\n <span *ngFor=\"let icon of dataItem.IconList\">\r\n <fa-icon class=\"e1tag-style5 left-icon\" [icon]=\"icon\" [style]=\"componentProperties.style.style5\"></fa-icon>\r\n </span>\r\n <ion-label [style]=\"componentProperties.style.style4\" class=\"e1tag-style4\" [ngClass]=\"dataItem.class\">\r\n <div [style]=\"componentProperties.style.style6\" class=\"e1tag-style6\" [innerHTML]=\"getTemplate(dataItem, data, group) | htmlSanitize\"></div>\r\n </ion-label>\r\n </div>\r\n </ng-template>\r\n </kendo-treeview>\r\n</div>\r\n", styles: [":host ::ng-deep .k-treeview .k-treeview-leaf{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.15);color:var(--ion-color-primary-shade);border:1px solid rgba(var(--ion-color-primary-rgb),1);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .k-treeview-leaf.k-selected,:host ::ng-deep .k-treeview .k-treeview-leaf.k-state-selected{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.5);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .k-treeview-leaf:hover,:host ::ng-deep .k-treeview .k-treeview-leaf.k-hover .k-treeview-leaf.k-state-hover{width:100%;margin:5px;padding:9px 20px 9px 8px;border-radius:2px;background:rgba(var(--ion-color-primary-rgb),.1);font-size:13px;cursor:pointer}:host ::ng-deep .k-treeview .tree-content-container{display:flex;align-items:center;justify-content:center}:host ::ng-deep .k-treeview .btn-seperator{width:10px;display:inline-block}.left-icon{margin-right:8px}\n"] }]
|
|
11499
11469
|
}], ctorParameters: function () { return [{ type: ZComponentService }]; }, propDecorators: { nodetemplate: [{
|
|
11500
11470
|
type: ViewChild,
|
|
11501
11471
|
args: ["nodetemplate", { static: true }]
|
|
@@ -13852,14 +13822,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
13852
13822
|
// Approach 1: Total Count is known, get next page upon scroll. (Will only have multiple pages / pageable)
|
|
13853
13823
|
// Approach 2: Total Count is not known, append more data at runtime. (Will only have 1 page / not pageable)
|
|
13854
13824
|
class VirtualScrollComponent extends ContainerFieldBase {
|
|
13855
|
-
constructor(componentService) {
|
|
13825
|
+
constructor(componentService, fontAweSomeService) {
|
|
13856
13826
|
super(componentService);
|
|
13827
|
+
this.fontAweSomeService = fontAweSomeService;
|
|
13828
|
+
this.collapsedGroupBy = []; // Used to define animation status
|
|
13829
|
+
this.groupByValueToExpand = ''; // Used to define animation status
|
|
13830
|
+
this.collapsedGroupBy_FirstNodeIndexList = new Array(); // When collapse, need to retain the first node in the list so that the group by title will not be hidden
|
|
13831
|
+
this.fullDataItems = [];
|
|
13832
|
+
this.dataItems = [];
|
|
13857
13833
|
this.pageSize = 50;
|
|
13858
13834
|
this.pageFetched = [];
|
|
13859
13835
|
this.footerFields = [];
|
|
13860
13836
|
}
|
|
13861
13837
|
ngOnInit() {
|
|
13862
|
-
this.
|
|
13838
|
+
this.setupComponent();
|
|
13839
|
+
this.setupDataItems();
|
|
13863
13840
|
this.setupFooter();
|
|
13864
13841
|
super.initComponent().subscribe();
|
|
13865
13842
|
}
|
|
@@ -13874,7 +13851,8 @@ class VirtualScrollComponent extends ContainerFieldBase {
|
|
|
13874
13851
|
this.viewPort.scrollToIndex(0);
|
|
13875
13852
|
}
|
|
13876
13853
|
}
|
|
13877
|
-
|
|
13854
|
+
setupComponent() {
|
|
13855
|
+
this.collapsedGroupBy = [];
|
|
13878
13856
|
if (this.data.Options) {
|
|
13879
13857
|
if (typeof this.data.Options === 'string' && this.data.Options.startsWith('group.')) {
|
|
13880
13858
|
this.options = ZComponentHelper.getGroupValue(this.data.Options, this.group);
|
|
@@ -13884,36 +13862,49 @@ class VirtualScrollComponent extends ContainerFieldBase {
|
|
|
13884
13862
|
}
|
|
13885
13863
|
this.pageSize = this.options.pageSize || 50;
|
|
13886
13864
|
this.options.loadingLabel = this.options.loadingLabel || '<div>Loading</div>';
|
|
13887
|
-
this.setupDataItems();
|
|
13888
13865
|
}
|
|
13889
13866
|
}
|
|
13890
13867
|
appendData(dataItems) {
|
|
13891
|
-
this.dataItems = this.dataItems.concat(dataItems);
|
|
13892
|
-
this.
|
|
13893
|
-
this.
|
|
13868
|
+
// this.dataItems = this.dataItems.concat(dataItems);
|
|
13869
|
+
// this.pageSize = this.dataItems.length;
|
|
13870
|
+
this.fullDataItems = this.fullDataItems.concat(dataItems);
|
|
13871
|
+
this.pageSize = this.fullDataItems.length;
|
|
13872
|
+
this.computeDataItems();
|
|
13894
13873
|
}
|
|
13895
13874
|
setupDataItems() {
|
|
13896
13875
|
this.pageFetched = [];
|
|
13897
|
-
if (this.
|
|
13898
|
-
|
|
13899
|
-
|
|
13900
|
-
|
|
13901
|
-
console.error('DataItems cannot be more than total count.');
|
|
13902
|
-
return;
|
|
13903
|
-
}
|
|
13904
|
-
this.dataItems = this.options.dataItems.concat(Array(cnt).fill(false));
|
|
13905
|
-
const pageNoToMarkAsFetch = Math.ceil(this.options.dataItems.length / this.pageSize) - 1;
|
|
13906
|
-
for (let i = 0; i <= pageNoToMarkAsFetch; i++) {
|
|
13907
|
-
this.pageFetched.push(i);
|
|
13908
|
-
}
|
|
13876
|
+
if (this.data.DataSetResult) {
|
|
13877
|
+
let dataSetResult = this.data.DataSetResult;
|
|
13878
|
+
if (typeof dataSetResult == 'string' && dataSetResult.startsWith('group.')) {
|
|
13879
|
+
dataSetResult = ZComponentHelper.getGroupValue(dataSetResult, this.group);
|
|
13909
13880
|
}
|
|
13910
|
-
|
|
13911
|
-
|
|
13881
|
+
this.setData(dataSetResult);
|
|
13882
|
+
}
|
|
13883
|
+
else {
|
|
13884
|
+
this.dataItems = [];
|
|
13885
|
+
}
|
|
13886
|
+
}
|
|
13887
|
+
setData(dataSetResult) {
|
|
13888
|
+
if (dataSetResult.dataSet && Array.isArray(dataSetResult.dataSet) && dataSetResult.dataSet.length > 0) {
|
|
13889
|
+
const cnt = dataSetResult.totalCount - dataSetResult.dataSet.length;
|
|
13890
|
+
if (cnt < 0) {
|
|
13891
|
+
console.error('DataItems cannot be more than total count.');
|
|
13892
|
+
return;
|
|
13893
|
+
}
|
|
13894
|
+
this.dataItems = dataSetResult.dataSet.concat(Array(cnt).fill(false));
|
|
13895
|
+
const pageNoToMarkAsFetch = Math.ceil(dataSetResult.dataSet.length / this.pageSize) - 1;
|
|
13896
|
+
for (let i = 0; i <= pageNoToMarkAsFetch; i++) {
|
|
13897
|
+
this.pageFetched.push(i);
|
|
13912
13898
|
}
|
|
13913
13899
|
}
|
|
13900
|
+
else if (dataSetResult.totalCount) {
|
|
13901
|
+
this.dataItems = Array(dataSetResult.totalCount).fill(false);
|
|
13902
|
+
}
|
|
13914
13903
|
else {
|
|
13915
|
-
this.dataItems =
|
|
13904
|
+
this.dataItems = [];
|
|
13916
13905
|
}
|
|
13906
|
+
this.fullDataItems = this.dataItems;
|
|
13907
|
+
this.computeDataItems();
|
|
13917
13908
|
}
|
|
13918
13909
|
populateListData() {
|
|
13919
13910
|
const renderRange = this.viewPort.getRenderedRange();
|
|
@@ -13942,8 +13933,8 @@ class VirtualScrollComponent extends ContainerFieldBase {
|
|
|
13942
13933
|
}
|
|
13943
13934
|
}
|
|
13944
13935
|
fetchData(pageNo) {
|
|
13945
|
-
if (this.data
|
|
13946
|
-
const onScrollEvent = ZComponentHelper.getGroupEvalValue.call(this, this.data
|
|
13936
|
+
if (this.data.OnScroll && typeof this.data.OnScroll == 'string' && this.data.OnScroll.startsWith('group.')) {
|
|
13937
|
+
const onScrollEvent = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnScroll);
|
|
13947
13938
|
if (typeof onScrollEvent === 'function') {
|
|
13948
13939
|
const callFunc = onScrollEvent.bind(this.group.ctrlScope);
|
|
13949
13940
|
return callFunc(this.group, { pageNo: pageNo, pageSize: this.pageSize });
|
|
@@ -13964,13 +13955,72 @@ class VirtualScrollComponent extends ContainerFieldBase {
|
|
|
13964
13955
|
this.footerFields = this.data.Value.filter(x => x.Section === 'footer');
|
|
13965
13956
|
}
|
|
13966
13957
|
}
|
|
13958
|
+
//#region Group By
|
|
13959
|
+
getGroupByLabelTemplate(dataItem, options) {
|
|
13960
|
+
if (options.groupByLabelTemplate && typeof options.groupByLabelTemplate == 'string') {
|
|
13961
|
+
if (options.groupByLabelTemplate.startsWith('group.')) {
|
|
13962
|
+
const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(this, options.groupByLabelTemplate);
|
|
13963
|
+
if (getTemplateFunc) {
|
|
13964
|
+
return getTemplateFunc({
|
|
13965
|
+
dataItem,
|
|
13966
|
+
options,
|
|
13967
|
+
});
|
|
13968
|
+
}
|
|
13969
|
+
}
|
|
13970
|
+
else {
|
|
13971
|
+
return dataItem[options.groupByLabelTemplate];
|
|
13972
|
+
}
|
|
13973
|
+
}
|
|
13974
|
+
}
|
|
13975
|
+
groupByOnClick(groupByValue) {
|
|
13976
|
+
if (!this.options.isGroupByCollapsible) {
|
|
13977
|
+
return;
|
|
13978
|
+
}
|
|
13979
|
+
// use collapse / expand to control animation sequence
|
|
13980
|
+
const isToCollapse = !this.collapsedGroupBy.includes(groupByValue);
|
|
13981
|
+
const firstNodeIndex = this.fullDataItems.map(x => x[this.options.groupBy]).indexOf(groupByValue);
|
|
13982
|
+
if (isToCollapse) {
|
|
13983
|
+
// to collapse (For animation: Change status, then append data)
|
|
13984
|
+
this.collapsedGroupBy.push(groupByValue);
|
|
13985
|
+
this.collapsedGroupBy_FirstNodeIndexList.push(firstNodeIndex);
|
|
13986
|
+
of({}).pipe(delay$1(400), tap$1(() => this.computeDataItems())).subscribe();
|
|
13987
|
+
}
|
|
13988
|
+
else {
|
|
13989
|
+
// to expand (For animation: Append data, then change status)
|
|
13990
|
+
this.collapsedGroupBy_FirstNodeIndexList = this.collapsedGroupBy_FirstNodeIndexList.filter(x => x != firstNodeIndex);
|
|
13991
|
+
const tempCollapsedGroupBy = this.collapsedGroupBy.filter(x => x !== groupByValue);
|
|
13992
|
+
this.dataItems = this.fullDataItems.filter((x, index) => !tempCollapsedGroupBy.includes(x[this.options.groupBy]) || this.collapsedGroupBy_FirstNodeIndexList.includes(index));
|
|
13993
|
+
this.groupByValueToExpand = groupByValue;
|
|
13994
|
+
of({}).pipe(delay$1(0), tap$1(() => {
|
|
13995
|
+
this.collapsedGroupBy = tempCollapsedGroupBy;
|
|
13996
|
+
this.groupByValueToExpand = groupByValue;
|
|
13997
|
+
})).subscribe();
|
|
13998
|
+
}
|
|
13999
|
+
}
|
|
14000
|
+
computeDataItems() {
|
|
14001
|
+
this.dataItems = this.fullDataItems.filter((x, index) => !this.collapsedGroupBy.includes(x[this.options.groupBy]) || this.collapsedGroupBy_FirstNodeIndexList.includes(index));
|
|
14002
|
+
}
|
|
14003
|
+
expandAll() {
|
|
14004
|
+
this.collapsedGroupBy = [];
|
|
14005
|
+
this.computeDataItems();
|
|
14006
|
+
}
|
|
14007
|
+
expandByGroupByValues(groupByValue) {
|
|
14008
|
+
this.collapsedGroupBy = this.collapsedGroupBy.filter(x => !groupByValue.includes(x));
|
|
14009
|
+
this.computeDataItems();
|
|
14010
|
+
}
|
|
13967
14011
|
}
|
|
13968
|
-
VirtualScrollComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VirtualScrollComponent, deps: [{ token: ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13969
|
-
VirtualScrollComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VirtualScrollComponent, selector: "app-virtual-scroll", viewQueries: [{ propertyName: "viewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"container e1tag-container-style\" [style]=\"componentProperties.containerStyle.style\"\r\n [ngClass]=\"(data.ComponentStyleType || '') + ' ' + (data.Class || '')\">\r\n <cdk-virtual-scroll-viewport [itemSize]=\"options.itemSize\" [style]=\"componentProperties.containerStyle.style1\"\r\n class=\"virtual-scroll-viewport e1tag-container-style1\" [minBufferPx]=\"options.minBufferPx\"\r\n [maxBufferPx]=\"options.maxBufferPx\">\r\n <!-- <ng-container *cdkVirtualFor=\"let field of clonedFields\"> -->\r\n <ng-container *cdkVirtualFor=\"let dataItem of dataItems; let i = index\">\r\n <div [style.height.px]=\"options.itemSize\" [style.min-height.px]=\"options.itemSize\"\r\n [style.max-height.px]=\"options.itemSize\" [style]=\"componentProperties.containerStyle.style2\"\r\n class=\"e1tag-container-style2\" (click)=\"onClick($event, dataItem)\"\r\n [id]=\"data.Name + '_' + dataItem?.Value?.Id || ''\">\r\n <div *ngIf=\"!dataItem\" [innerHTML]=\"options.loadingLabel | htmlSanitize\"></div>\r\n <div *ngIf=\"dataItem.Label\" [innerHTML]=\"dataItem.Label | htmlSanitize\"></div>\r\n </div>\r\n </ng-container>\r\n <app-zformcontrol *ngFor=\"let field of footerFields\" [field]=\"field\" [containerField]=\"data\" [group]=\"group\"\r\n [form]=\"form\" [style]=\"componentProperties.containerStyle.style3\" class=\"e1tag-container-style3\">\r\n </app-zformcontrol>\r\n </cdk-virtual-scroll-viewport>\r\n</div>\r\n", styles: [".virtual-scroll-viewport{height:500px}\n"], components: [{ type:
|
|
14012
|
+
VirtualScrollComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VirtualScrollComponent, deps: [{ token: ZComponentService }, { token: i2.FontAweSomeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
14013
|
+
VirtualScrollComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VirtualScrollComponent, selector: "app-virtual-scroll", viewQueries: [{ propertyName: "viewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"container e1tag-container-style\" [style]=\"componentProperties.containerStyle.style\"\r\n [ngClass]=\"(data.ComponentStyleType || '') + ' ' + (data.Class || '')\">\r\n <cdk-virtual-scroll-viewport [itemSize]=\"options.itemSize\" [style]=\"componentProperties.containerStyle.style1\"\r\n class=\"virtual-scroll-viewport e1tag-container-style1\" [minBufferPx]=\"options.minBufferPx\"\r\n [maxBufferPx]=\"options.maxBufferPx\">\r\n <!-- <ng-container *cdkVirtualFor=\"let field of clonedFields\"> -->\r\n <ng-container *cdkVirtualFor=\"let dataItem of dataItems; let i = index\">\r\n <div class=\"virtual-scroll-groupby e1tag-container-style4\" [style]=\"componentProperties.containerStyle.style4\"\r\n *ngIf=\"options.groupBy && (!dataItems[i-1] || dataItem[options.groupBy] !== dataItems[i-1][options.groupBy])\"\r\n (click)=\"groupByOnClick(dataItem[options.groupBy])\" [class.groupby-collapsible]=\"options.isGroupByCollapsible\">\r\n <fa-icon class=\"virtual-scroll-groupby-arrow-icon e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" *ngIf=\"!!options.isGroupByCollapsible\"\r\n [icon]=\"getFontAwesome('caret-down', fontAweSomeService)\"\r\n [@rotateAnimation]=\"{value: collapsedGroupBy.includes(dataItem[options.groupBy]) ? 'rotate' : 'default', params: {degree: -90}}\">\r\n </fa-icon>\r\n <span class=\"virtual-scroll-groupby-label e1tag-container-style6\"\r\n [style]=\"componentProperties.containerStyle.style6\">\r\n {{options.groupByLabelTemplate ? getGroupByLabelTemplate(dataItem, options) : dataItem[options.groupBy]}}\r\n </span>\r\n </div>\r\n <div [style.height.px]=\"options.itemSize\" [style.min-height.px]=\"options.itemSize\"\r\n [style.max-height.px]=\"options.itemSize\" [style]=\"componentProperties.containerStyle.style2\"\r\n class=\"e1tag-container-style2 virtual-scroll-dataitem\" (click)=\"onClick($event, dataItem)\"\r\n [id]=\"data.Name + '_' + dataItem?.Value?.Id || ''\"\r\n [@collapseAnimation]=\"{value: !!options.groupBy && collapsedGroupBy.includes(dataItem[options.groupBy]) ? 'collapse' : 'default'}\"\r\n [class.groupby-value-expand]=\"groupByValueToExpand == (dataItem[options.groupBy])\">\r\n <div *ngIf=\"!dataItem\" [innerHTML]=\"options.loadingLabel | htmlSanitize\"></div>\r\n <div *ngIf=\"dataItem.Label\" [innerHTML]=\"dataItem.Label | htmlSanitize\"></div>\r\n </div>\r\n </ng-container>\r\n <app-zformcontrol *ngFor=\"let field of footerFields\" [field]=\"field\" [containerField]=\"data\" [group]=\"group\"\r\n [form]=\"form\" [style]=\"componentProperties.containerStyle.style3\" class=\"e1tag-container-style3\">\r\n </app-zformcontrol>\r\n </cdk-virtual-scroll-viewport>\r\n</div>\r\n", styles: [".virtual-scroll-viewport{height:500px}.virtual-scroll-viewport .virtual-scroll-groupby{background:rgba(var(--ion-color-secondary-rgb),.1);font-weight:500;padding:12px 0 4px 12px;margin:1px}.virtual-scroll-viewport .virtual-scroll-groupby.groupby-collapsible{cursor:pointer;display:grid;grid-template-columns:20px auto}.virtual-scroll-viewport .virtual-scroll-groupby.groupby-collapsible:hover{background:rgba(var(--ion-color-secondary-rgb),.05)}.virtual-scroll-viewport .virtual-scroll-groupby>.virtual-scroll-groupby-arrow-icon{width:-moz-fit-content;width:fit-content}.virtual-scroll-viewport .virtual-scroll-dataitem.groupby-value-expand{transform:translateY(-10%);opacity:.2}\n"], components: [{ type: i3$b.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: i5$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: ZformcontrolComponent, selector: "app-zformcontrol", inputs: ["field", "group", "form", "containerField"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3$b.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i3$b.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "htmlSanitize": HtmlSanitizePipe }, animations: [
|
|
14014
|
+
collapseAnimation,
|
|
14015
|
+
rotateAnimation
|
|
14016
|
+
] });
|
|
13970
14017
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VirtualScrollComponent, decorators: [{
|
|
13971
14018
|
type: Component,
|
|
13972
|
-
args: [{ selector: "app-virtual-scroll",
|
|
13973
|
-
|
|
14019
|
+
args: [{ selector: "app-virtual-scroll", animations: [
|
|
14020
|
+
collapseAnimation,
|
|
14021
|
+
rotateAnimation
|
|
14022
|
+
], template: "<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"container e1tag-container-style\" [style]=\"componentProperties.containerStyle.style\"\r\n [ngClass]=\"(data.ComponentStyleType || '') + ' ' + (data.Class || '')\">\r\n <cdk-virtual-scroll-viewport [itemSize]=\"options.itemSize\" [style]=\"componentProperties.containerStyle.style1\"\r\n class=\"virtual-scroll-viewport e1tag-container-style1\" [minBufferPx]=\"options.minBufferPx\"\r\n [maxBufferPx]=\"options.maxBufferPx\">\r\n <!-- <ng-container *cdkVirtualFor=\"let field of clonedFields\"> -->\r\n <ng-container *cdkVirtualFor=\"let dataItem of dataItems; let i = index\">\r\n <div class=\"virtual-scroll-groupby e1tag-container-style4\" [style]=\"componentProperties.containerStyle.style4\"\r\n *ngIf=\"options.groupBy && (!dataItems[i-1] || dataItem[options.groupBy] !== dataItems[i-1][options.groupBy])\"\r\n (click)=\"groupByOnClick(dataItem[options.groupBy])\" [class.groupby-collapsible]=\"options.isGroupByCollapsible\">\r\n <fa-icon class=\"virtual-scroll-groupby-arrow-icon e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" *ngIf=\"!!options.isGroupByCollapsible\"\r\n [icon]=\"getFontAwesome('caret-down', fontAweSomeService)\"\r\n [@rotateAnimation]=\"{value: collapsedGroupBy.includes(dataItem[options.groupBy]) ? 'rotate' : 'default', params: {degree: -90}}\">\r\n </fa-icon>\r\n <span class=\"virtual-scroll-groupby-label e1tag-container-style6\"\r\n [style]=\"componentProperties.containerStyle.style6\">\r\n {{options.groupByLabelTemplate ? getGroupByLabelTemplate(dataItem, options) : dataItem[options.groupBy]}}\r\n </span>\r\n </div>\r\n <div [style.height.px]=\"options.itemSize\" [style.min-height.px]=\"options.itemSize\"\r\n [style.max-height.px]=\"options.itemSize\" [style]=\"componentProperties.containerStyle.style2\"\r\n class=\"e1tag-container-style2 virtual-scroll-dataitem\" (click)=\"onClick($event, dataItem)\"\r\n [id]=\"data.Name + '_' + dataItem?.Value?.Id || ''\"\r\n [@collapseAnimation]=\"{value: !!options.groupBy && collapsedGroupBy.includes(dataItem[options.groupBy]) ? 'collapse' : 'default'}\"\r\n [class.groupby-value-expand]=\"groupByValueToExpand == (dataItem[options.groupBy])\">\r\n <div *ngIf=\"!dataItem\" [innerHTML]=\"options.loadingLabel | htmlSanitize\"></div>\r\n <div *ngIf=\"dataItem.Label\" [innerHTML]=\"dataItem.Label | htmlSanitize\"></div>\r\n </div>\r\n </ng-container>\r\n <app-zformcontrol *ngFor=\"let field of footerFields\" [field]=\"field\" [containerField]=\"data\" [group]=\"group\"\r\n [form]=\"form\" [style]=\"componentProperties.containerStyle.style3\" class=\"e1tag-container-style3\">\r\n </app-zformcontrol>\r\n </cdk-virtual-scroll-viewport>\r\n</div>\r\n", styles: [".virtual-scroll-viewport{height:500px}.virtual-scroll-viewport .virtual-scroll-groupby{background:rgba(var(--ion-color-secondary-rgb),.1);font-weight:500;padding:12px 0 4px 12px;margin:1px}.virtual-scroll-viewport .virtual-scroll-groupby.groupby-collapsible{cursor:pointer;display:grid;grid-template-columns:20px auto}.virtual-scroll-viewport .virtual-scroll-groupby.groupby-collapsible:hover{background:rgba(var(--ion-color-secondary-rgb),.05)}.virtual-scroll-viewport .virtual-scroll-groupby>.virtual-scroll-groupby-arrow-icon{width:-moz-fit-content;width:fit-content}.virtual-scroll-viewport .virtual-scroll-dataitem.groupby-value-expand{transform:translateY(-10%);opacity:.2}\n"] }]
|
|
14023
|
+
}], ctorParameters: function () { return [{ type: ZComponentService }, { type: i2.FontAweSomeService }]; }, propDecorators: { viewPort: [{
|
|
13974
14024
|
type: ViewChild,
|
|
13975
14025
|
args: [CdkVirtualScrollViewport]
|
|
13976
14026
|
}] } });
|