mmhglobal-dynamicform 2.15.2 → 2.16.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 +22 -68
- package/esm2020/lib/virtual-scroll/virtual-scroll.component.mjs +118 -35
- package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +27 -4
- package/esm2020/lib/zgrid/zgrid.component.mjs +4 -2
- package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +12 -14
- package/esm2020/lib/ztree/ztree.component.mjs +3 -3
- package/fesm2015/mmhglobal-dynamicform.mjs +201 -116
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +200 -116
- 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
|
@@ -6,7 +6,7 @@ import { NavigationStart, NavigationEnd, NavigationError, RouterModule } from '@
|
|
|
6
6
|
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';
|
|
7
7
|
import { tap, switchMap, map, take, delay, concatMap, ignoreElements } from 'rxjs/operators';
|
|
8
8
|
import * as i2 from 'mmhglobal-zcore';
|
|
9
|
-
import { ZGroup, FormType, ZComponentHelper, MESSAGETYPE, DefaultMessage, DefaultDialogTitle,
|
|
9
|
+
import { ZGroup, FormType, ZComponentHelper, MESSAGETYPE, ActionType, DefaultMessage, DefaultDialogTitle, Delimiter, ZSelectPostApiParams, ZComponentProperties, ComponentType as ComponentType$1, InternalComponentType_DropDown, UploadMetaData, AttachmentConfig, DefaultPageSettingParams, ZCoreModule } from 'mmhglobal-zcore';
|
|
10
10
|
import * as i2$1 from '@ionic/angular';
|
|
11
11
|
import { IonicModule } from '@ionic/angular';
|
|
12
12
|
import * as i3 from 'mmhglobal-zmodal';
|
|
@@ -17,7 +17,7 @@ import * as i8 from '@progress/kendo-angular-grid';
|
|
|
17
17
|
import { DataBindingDirective, GridComponent, BaseFilterCellComponent, ExcelModule, GridModule } from '@progress/kendo-angular-grid';
|
|
18
18
|
import * as i5 from '@angular/common';
|
|
19
19
|
import { formatDate, CommonModule } from '@angular/common';
|
|
20
|
-
import * as
|
|
20
|
+
import * as i3$b from '@angular/cdk/scrolling';
|
|
21
21
|
import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
|
|
22
22
|
import * as i4 from '@angular/forms';
|
|
23
23
|
import { Validators, FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
@@ -84,7 +84,7 @@ import 'brace/mode/json';
|
|
|
84
84
|
import 'brace/mode/javascript';
|
|
85
85
|
import 'brace/mode/html';
|
|
86
86
|
import { process } from '@progress/kendo-data-query';
|
|
87
|
-
import { trigger, transition, style, animate } from '@angular/animations';
|
|
87
|
+
import { trigger, transition, style, animate, state } from '@angular/animations';
|
|
88
88
|
import * as i3$7 from '@progress/kendo-angular-toolbar';
|
|
89
89
|
import { MultiSelect, DropDownList } from '@syncfusion/ej2-dropdowns';
|
|
90
90
|
import { createElement, getComponent } from '@syncfusion/ej2-base';
|
|
@@ -916,55 +916,7 @@ class MainService {
|
|
|
916
916
|
}
|
|
917
917
|
return of(false);
|
|
918
918
|
}));
|
|
919
|
-
|
|
920
|
-
// this.alertCtrl
|
|
921
|
-
// .create({
|
|
922
|
-
// header: "Data not save yet",
|
|
923
|
-
// // subHeader: 'SubHeader statement here',
|
|
924
|
-
// message: "Are you sure want to discard the changes?",
|
|
925
|
-
// buttons: [
|
|
926
|
-
// {
|
|
927
|
-
// text: "Cancel",
|
|
928
|
-
// role: "cancel",
|
|
929
|
-
// cssClass: "secondary",
|
|
930
|
-
// handler: () => {
|
|
931
|
-
// replySub.next(false);
|
|
932
|
-
// }
|
|
933
|
-
// },
|
|
934
|
-
// {
|
|
935
|
-
// text: "Discard Changes",
|
|
936
|
-
// cssClass: "warning",
|
|
937
|
-
// handler: () => {
|
|
938
|
-
// replySub.next(true);
|
|
939
|
-
// }
|
|
940
|
-
// }
|
|
941
|
-
// ]
|
|
942
|
-
// })
|
|
943
|
-
// .then(alertElement => {
|
|
944
|
-
// alertElement.present();
|
|
945
|
-
// });
|
|
946
|
-
// return replySub.asObservable().pipe(take(1));
|
|
947
|
-
}
|
|
948
|
-
// async openModalForm(modalParams: ModalPageParams) {
|
|
949
|
-
// // console.log("openModalForm");
|
|
950
|
-
// console.error(
|
|
951
|
-
// "Please use ModalService.show instead of MainService.openModalForm!"
|
|
952
|
-
// );
|
|
953
|
-
// // const modal = this.modalService.show(modalParams.colFields$ || modalParams.controllerName, modalParams.parentGroup,
|
|
954
|
-
// // modalParams.formHeader, modalParams.zModel, modalParams.referId);
|
|
955
|
-
// const modal = await this.modalCtrl.create({
|
|
956
|
-
// component: ZmodalPage,
|
|
957
|
-
// backdropDismiss: true,
|
|
958
|
-
// componentProps: {
|
|
959
|
-
// modalParams,
|
|
960
|
-
// },
|
|
961
|
-
// });
|
|
962
|
-
// modal.present();
|
|
963
|
-
// return modal;
|
|
964
|
-
// // .onWillDismiss((zmodel: any) => {
|
|
965
|
-
// // this.
|
|
966
|
-
// // });
|
|
967
|
-
// }
|
|
919
|
+
}
|
|
968
920
|
closeModalForm(group) {
|
|
969
921
|
if (group && group.subject) {
|
|
970
922
|
group.subject.next({
|
|
@@ -1101,8 +1053,9 @@ class MainService {
|
|
|
1101
1053
|
if (this.previousRouteParam) {
|
|
1102
1054
|
const paramSegment = this.previousRouteParam.split("/");
|
|
1103
1055
|
const actionSegment = paramSegment[paramSegment.length - 1];
|
|
1104
|
-
// If the last segment is 'new' or 'update', store the previous route param in session storage
|
|
1105
|
-
|
|
1056
|
+
// If the last segment is 'new' or 'update', store the previous route param in session storage
|
|
1057
|
+
const validActionTypes = [ActionType.New.toString(), ActionType.Edit.toString(), ActionType.Update.toString()];
|
|
1058
|
+
if (validActionTypes.includes(actionSegment)) {
|
|
1106
1059
|
this.storageService.set(this.PREVIOUS_PAGE_ROUTE_PARAM_STORAGE_KEY, JSON.stringify(this.previousRouteParam));
|
|
1107
1060
|
}
|
|
1108
1061
|
}
|
|
@@ -1328,11 +1281,11 @@ class MainService {
|
|
|
1328
1281
|
//const lastSegment = pathSegment[pathSegment.length - 1];
|
|
1329
1282
|
const currentNavigationParam = this.getNavigationCurrentParam();
|
|
1330
1283
|
const navigationSegments = currentNavigationParam ? currentNavigationParam.split('/') : null;
|
|
1331
|
-
const defaultAction = group.isCloneNew ?
|
|
1332
|
-
const actionSegment = group.isCloneNew ? (navigationSegments ? navigationSegments[navigationSegments.length - 1] :
|
|
1284
|
+
const defaultAction = group.isCloneNew ? ActionType.New : ActionType.Edit;
|
|
1285
|
+
const actionSegment = group.isCloneNew ? (navigationSegments ? navigationSegments[navigationSegments.length - 1] : ActionType.New) : defaultAction;
|
|
1333
1286
|
if (group.isListForm) {
|
|
1334
1287
|
this.tryUpdateGroupTrigger(false);
|
|
1335
|
-
this.setNavigationParams([referenceId,
|
|
1288
|
+
this.setNavigationParams([referenceId, ActionType.New.toString()]);
|
|
1336
1289
|
this.router.navigate([group.editModelURL], {
|
|
1337
1290
|
relativeTo: group.ctrlScope.activatedRoute,
|
|
1338
1291
|
});
|
|
@@ -1346,7 +1299,7 @@ class MainService {
|
|
|
1346
1299
|
// Scenario 6: From List open record(action: edit), isCloneNew, Save, Click New ==> Clear form (When UpdateModel, need change isCloneNew = false)
|
|
1347
1300
|
// Scenario 7: From List open record(action: edit), Click New ==> Clear form
|
|
1348
1301
|
// Scenario 8: From List open record(action: edit), Click New, Save, isCloneNew ==> DONT Clear form
|
|
1349
|
-
if (actionSegment ===
|
|
1302
|
+
if (actionSegment === ActionType.Edit || actionSegment === ActionType.New) {
|
|
1350
1303
|
if (!group.isCloneNew) {
|
|
1351
1304
|
group.zModel = {};
|
|
1352
1305
|
group.form.reset();
|
|
@@ -1355,14 +1308,14 @@ class MainService {
|
|
|
1355
1308
|
this.reloadWorkflowButton(group, event.data.zButtonName);
|
|
1356
1309
|
}
|
|
1357
1310
|
}
|
|
1358
|
-
if (actionSegment ===
|
|
1311
|
+
if (actionSegment === ActionType.Edit) {
|
|
1359
1312
|
// clear cloneNewModel cache(if have)
|
|
1360
1313
|
if (this.cacheService.getCache(this.CLONE_NEW_MODEL_CACHE_KEY)) {
|
|
1361
1314
|
this.cacheService.clearCache(this.CLONE_NEW_MODEL_CACHE_KEY);
|
|
1362
1315
|
}
|
|
1363
1316
|
//this.setNavigationParams([referenceId, 'new']);
|
|
1364
1317
|
this.removeLastRouteParam();
|
|
1365
|
-
this.setRouteParam([referenceId,
|
|
1318
|
+
this.setRouteParam([referenceId, ActionType.New.toString()]);
|
|
1366
1319
|
group.zModel[group.parentReferenceField] = referenceId;
|
|
1367
1320
|
}
|
|
1368
1321
|
group.isEdit = false;
|
|
@@ -1371,7 +1324,7 @@ class MainService {
|
|
|
1371
1324
|
}
|
|
1372
1325
|
else {
|
|
1373
1326
|
this.tryUpdateGroupTrigger(false);
|
|
1374
|
-
this.setNavigationParams([referenceId,
|
|
1327
|
+
this.setNavigationParams([referenceId, ActionType.New.toString()]);
|
|
1375
1328
|
this.router.navigate([group.editModelURL], {
|
|
1376
1329
|
relativeTo: group.ctrlScope.activatedRoute,
|
|
1377
1330
|
});
|
|
@@ -1387,10 +1340,10 @@ class MainService {
|
|
|
1387
1340
|
}
|
|
1388
1341
|
createModel(event, group) {
|
|
1389
1342
|
const fg = group.form;
|
|
1390
|
-
const resMessage = group.SuccessCreatedMessage ||
|
|
1343
|
+
const resMessage = group.SuccessCreatedMessage || DefaultMessage.recordCreated;
|
|
1391
1344
|
let createModelres = null;
|
|
1392
1345
|
if (!fg.dirty) {
|
|
1393
|
-
console.warn(
|
|
1346
|
+
console.warn(DefaultMessage.notDirtyMessage);
|
|
1394
1347
|
return;
|
|
1395
1348
|
}
|
|
1396
1349
|
if (!fg.valid) {
|
|
@@ -1445,7 +1398,7 @@ class MainService {
|
|
|
1445
1398
|
}
|
|
1446
1399
|
updateModelObservable(event, group, form = null, updateAPIObservable = null, isSkipDirty = false) {
|
|
1447
1400
|
const fg = form || group.form;
|
|
1448
|
-
const resMessage = group.SuccessUpdatedMessage ||
|
|
1401
|
+
const resMessage = group.SuccessUpdatedMessage || DefaultMessage.recordUpdated;
|
|
1449
1402
|
let updateModelres = null;
|
|
1450
1403
|
if (!this.isFormDirtyAndValid(fg, group, isSkipDirty, event)) {
|
|
1451
1404
|
if (isSkipDirty) {
|
|
@@ -1453,7 +1406,7 @@ class MainService {
|
|
|
1453
1406
|
}
|
|
1454
1407
|
return of(false);
|
|
1455
1408
|
}
|
|
1456
|
-
updateAPIObservable = updateAPIObservable || this.webApiService.httpPut$(group.resourceURL
|
|
1409
|
+
updateAPIObservable = updateAPIObservable || this.webApiService.httpPut$(`${group.resourceURL}/${group.zModel.Id}`, group.zModel, false).pipe(tap((res) => {
|
|
1457
1410
|
this.handleSuccess(res, resMessage);
|
|
1458
1411
|
}
|
|
1459
1412
|
//this.handleSuccess(res, "Record is updated successfully.")
|
|
@@ -1526,14 +1479,14 @@ class MainService {
|
|
|
1526
1479
|
}
|
|
1527
1480
|
deleteModel(event, group) {
|
|
1528
1481
|
const fg = group.form;
|
|
1529
|
-
const resMessage = group.SuccessDeletedMessage ||
|
|
1482
|
+
const resMessage = group.SuccessDeletedMessage || DefaultMessage.recordDeleted;
|
|
1530
1483
|
of(group.zModel)
|
|
1531
1484
|
.pipe(switchMap((zmodel) => {
|
|
1532
1485
|
console.log("Before delete, zModel:", zmodel);
|
|
1533
1486
|
return this.beforeDeleteModel(group);
|
|
1534
1487
|
}), switchMap(() => {
|
|
1535
1488
|
group.isTriggered = false;
|
|
1536
|
-
return this.alertService.show("Delete Record",
|
|
1489
|
+
return this.alertService.show("Delete Record", DefaultMessage.confirmation, [
|
|
1537
1490
|
{ text: "No", cssClass: "secondary" },
|
|
1538
1491
|
{ text: "Yes", cssClass: "primary" }
|
|
1539
1492
|
]);
|
|
@@ -1597,7 +1550,7 @@ class MainService {
|
|
|
1597
1550
|
}
|
|
1598
1551
|
isFormDirtyAndValid(fg, group, isSkipDirty = false, event) {
|
|
1599
1552
|
if (!isSkipDirty && !fg.dirty) {
|
|
1600
|
-
console.warn(
|
|
1553
|
+
console.warn(DefaultMessage.notDirtyMessage);
|
|
1601
1554
|
const message = event && event.data && event.data[`FormNotDirtyMessage`] ? event.data[`FormNotDirtyMessage`] : DefaultMessage.notDirtyMessage;
|
|
1602
1555
|
this.alertService.showOkay(DefaultDialogTitle.nothingToUpdate, message, ["col-5"]);
|
|
1603
1556
|
return false;
|
|
@@ -1802,16 +1755,17 @@ class MainService {
|
|
|
1802
1755
|
}
|
|
1803
1756
|
}
|
|
1804
1757
|
handleSignalRModificationAlert(formId) {
|
|
1805
|
-
if (this.signalrService.signalREnabled()) {
|
|
1758
|
+
if (this.signalrService.signalREnabled() && this.environment.enableFormPageModificationAlert) {
|
|
1806
1759
|
const eventName = `${window.location.href}`.replace(/([^:]\/)\/+/g, "$1");
|
|
1807
1760
|
if (!this.group.signalRCallbackHandler) {
|
|
1808
1761
|
this.group.signalRCallbackHandler = {};
|
|
1809
1762
|
}
|
|
1810
1763
|
this.group.signalRCallbackHandler['alertFormModified'] = this.alertFormModified.bind(this, formId);
|
|
1764
|
+
this.signalrService.unsubscribeFromEvent(`${eventName}`); // unsubscribe the event before subscribe to event again.
|
|
1811
1765
|
this.signalrService.subscribeToEvent(this.group, `${eventName}`, `group.signalRCallbackHandler.alertFormModified`);
|
|
1812
1766
|
}
|
|
1813
1767
|
else {
|
|
1814
|
-
console.warn('
|
|
1768
|
+
console.warn('enableFormPageModificationAlert not enabled.');
|
|
1815
1769
|
}
|
|
1816
1770
|
}
|
|
1817
1771
|
alertFormModified(formId, group, resp, eventName) {
|
|
@@ -2841,8 +2795,31 @@ class ZGridBindingDirective extends DataBindingDirective {
|
|
|
2841
2795
|
}
|
|
2842
2796
|
});
|
|
2843
2797
|
}
|
|
2844
|
-
this.
|
|
2845
|
-
|
|
2798
|
+
if (this.field.GridFilterConfiguration?.OnChange) {
|
|
2799
|
+
console.log("GridFilterConfiguration.OnChange triggered");
|
|
2800
|
+
// Use switchMap to handle the asynchronous operation
|
|
2801
|
+
of(this.params.filterParams).pipe(switchMap((filterParams) => {
|
|
2802
|
+
let expression = this.field.GridFilterConfiguration.OnChange;
|
|
2803
|
+
expression = expression.replace('modalGroup.', 'group.');
|
|
2804
|
+
expression = expression.replace('group.', 'grp.');
|
|
2805
|
+
const func = eval('this.' + expression);
|
|
2806
|
+
const callFunc = func.bind(this.grp);
|
|
2807
|
+
return callFunc(filterParams);
|
|
2808
|
+
})).subscribe((updatedFilterParams) => {
|
|
2809
|
+
console.log(updatedFilterParams);
|
|
2810
|
+
// update filterParams
|
|
2811
|
+
if (updatedFilterParams) {
|
|
2812
|
+
this.params.filterParams = updatedFilterParams;
|
|
2813
|
+
}
|
|
2814
|
+
this.changeEvent.filterChanged = true;
|
|
2815
|
+
this.getDataBinding();
|
|
2816
|
+
});
|
|
2817
|
+
}
|
|
2818
|
+
else {
|
|
2819
|
+
// If there is no GridFilterConfiguration.OnChange
|
|
2820
|
+
this.changeEvent.filterChanged = true;
|
|
2821
|
+
this.getDataBinding();
|
|
2822
|
+
}
|
|
2846
2823
|
}
|
|
2847
2824
|
dataStateChange(state) {
|
|
2848
2825
|
this.grid.loading = true;
|
|
@@ -6622,6 +6599,33 @@ const hideAndShowVerticalAnimation = trigger('hideAndShowAnimation', [
|
|
|
6622
6599
|
style({ transform: 'translateY(0)', opacity: 1, height: 100 }),
|
|
6623
6600
|
animate('300ms ease-in', style({ transform: 'translateY(-20%)', opacity: 0, height: 0 }))
|
|
6624
6601
|
])
|
|
6602
|
+
]);
|
|
6603
|
+
const rotateAnimation = trigger('rotateAnimation', [
|
|
6604
|
+
state('default', style({
|
|
6605
|
+
transform: 'rotate(0deg)'
|
|
6606
|
+
})),
|
|
6607
|
+
state('rotate', style({
|
|
6608
|
+
transform: 'rotate(' + '{{degree}}' + 'deg)'
|
|
6609
|
+
}), { params: { degree: 90 } }),
|
|
6610
|
+
transition('* => *', [
|
|
6611
|
+
animate('{{duration}}')
|
|
6612
|
+
], { params: { duration: '0.2s' } }),
|
|
6613
|
+
]);
|
|
6614
|
+
const collapseAnimation = trigger('collapseAnimation', [
|
|
6615
|
+
state('default', style({
|
|
6616
|
+
transform: 'translateY(0)', opacity: 1, display: 'block'
|
|
6617
|
+
})),
|
|
6618
|
+
state('collapse', style({
|
|
6619
|
+
transform: 'translateY(' + '{{height}}' + ')',
|
|
6620
|
+
opacity: 0,
|
|
6621
|
+
display: 'none'
|
|
6622
|
+
}), { params: { height: '-10%' } }),
|
|
6623
|
+
transition('* => collapse', [
|
|
6624
|
+
animate('{{duration}}')
|
|
6625
|
+
], { params: { duration: '0.2s' } }),
|
|
6626
|
+
transition('* => default', [
|
|
6627
|
+
animate('{{duration}}')
|
|
6628
|
+
], { params: { duration: '0.2s' } })
|
|
6625
6629
|
]);
|
|
6626
6630
|
|
|
6627
6631
|
/********** Angular **********/
|
|
@@ -7092,9 +7096,7 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7092
7096
|
getzDataForzModel$.subscribe((zdata) => {
|
|
7093
7097
|
console.log(data.Name, ' - initial zData load: ', zdata);
|
|
7094
7098
|
if (this.group) {
|
|
7095
|
-
|
|
7096
|
-
this.group.afterLoadzDataOptions(this.group);
|
|
7097
|
-
}
|
|
7099
|
+
this.afterLoadzDataOptions();
|
|
7098
7100
|
}
|
|
7099
7101
|
this.isLoading = false;
|
|
7100
7102
|
});
|
|
@@ -7116,9 +7118,7 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7116
7118
|
this.autoSelectFirstOption(isRequired, optionData[0], fieldValue, zModel.Id);
|
|
7117
7119
|
}
|
|
7118
7120
|
if (this.group) {
|
|
7119
|
-
|
|
7120
|
-
this.group.afterLoadzDataOptions(this.group);
|
|
7121
|
-
}
|
|
7121
|
+
this.afterLoadzDataOptions();
|
|
7122
7122
|
}
|
|
7123
7123
|
this.isLoading = false;
|
|
7124
7124
|
});
|
|
@@ -7135,9 +7135,7 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7135
7135
|
setTimeout(function () {
|
|
7136
7136
|
thisComponent.autoSelectFirstOption(isRequired, optionData[0], fieldValue, thisComponent.group.zModel.Id);
|
|
7137
7137
|
if (this.group) {
|
|
7138
|
-
|
|
7139
|
-
this.group.afterLoadzDataOptions(this.group);
|
|
7140
|
-
}
|
|
7138
|
+
this.afterLoadzDataOptions();
|
|
7141
7139
|
}
|
|
7142
7140
|
}, 100);
|
|
7143
7141
|
}
|
|
@@ -7268,7 +7266,7 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7268
7266
|
this.onSearch({ component: null, text: value });
|
|
7269
7267
|
if (this.group) {
|
|
7270
7268
|
if (this.group.afterLoadzDataOptions) {
|
|
7271
|
-
this.group.afterLoadzDataOptions(this.group);
|
|
7269
|
+
this.group.afterLoadzDataOptions(this.group, this.data);
|
|
7272
7270
|
}
|
|
7273
7271
|
}
|
|
7274
7272
|
});
|
|
@@ -7285,9 +7283,7 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7285
7283
|
.subscribe(() => {
|
|
7286
7284
|
this.onSearch({ component: null, text: value });
|
|
7287
7285
|
if (this.group) {
|
|
7288
|
-
|
|
7289
|
-
this.group.afterLoadzDataOptions(this.group);
|
|
7290
|
-
}
|
|
7286
|
+
this.afterLoadzDataOptions();
|
|
7291
7287
|
}
|
|
7292
7288
|
this.isLoading = false;
|
|
7293
7289
|
});
|
|
@@ -7511,6 +7507,12 @@ class ZselectmultipleComponent extends InputFieldBase {
|
|
|
7511
7507
|
}
|
|
7512
7508
|
}
|
|
7513
7509
|
}
|
|
7510
|
+
afterLoadzDataOptions() {
|
|
7511
|
+
if (this.group.afterLoadzDataOptions) {
|
|
7512
|
+
console.log("group.afterLoadzDataOptions triggered." + this.data);
|
|
7513
|
+
this.group.afterLoadzDataOptions(this.group, this.data);
|
|
7514
|
+
}
|
|
7515
|
+
}
|
|
7514
7516
|
}
|
|
7515
7517
|
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 });
|
|
7516
7518
|
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 } });
|
|
@@ -8834,7 +8836,6 @@ class ZgridComponent extends DataListingFieldBase {
|
|
|
8834
8836
|
console.warn('Invalid/Empty grid(' + this.data.Name + ') data to generate column');
|
|
8835
8837
|
}
|
|
8836
8838
|
else {
|
|
8837
|
-
const fieldName = this.data['FieldElementName'];
|
|
8838
8839
|
this.columns = [];
|
|
8839
8840
|
const generateHiddenColumns = [];
|
|
8840
8841
|
ZComponentHelper.getGridColumns({
|
|
@@ -9102,6 +9103,9 @@ class ZgridComponent extends DataListingFieldBase {
|
|
|
9102
9103
|
this.inlineEditedFormGroups = {};
|
|
9103
9104
|
this.zgrid.getDataBinding();
|
|
9104
9105
|
}
|
|
9106
|
+
else {
|
|
9107
|
+
console.warn('this.zgrid is undefined.');
|
|
9108
|
+
}
|
|
9105
9109
|
}
|
|
9106
9110
|
getGridData() {
|
|
9107
9111
|
return this.isUseLocalData() ? (this.zgrid.data || this.zgrid.originalData) : (this.zgrid.grid.data && this.zgrid.grid.data.data ? this.zgrid.grid.data.data : []);
|
|
@@ -11437,10 +11441,10 @@ class ZtreeComponent extends DataListingFieldBase {
|
|
|
11437
11441
|
}
|
|
11438
11442
|
}
|
|
11439
11443
|
ZtreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZtreeComponent, deps: [{ token: ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11440
|
-
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 } });
|
|
11444
|
+
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 } });
|
|
11441
11445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZtreeComponent, decorators: [{
|
|
11442
11446
|
type: Component,
|
|
11443
|
-
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"] }]
|
|
11447
|
+
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"] }]
|
|
11444
11448
|
}], ctorParameters: function () { return [{ type: ZComponentService }]; }, propDecorators: { nodetemplate: [{
|
|
11445
11449
|
type: ViewChild,
|
|
11446
11450
|
args: ["nodetemplate", { static: true }]
|
|
@@ -13788,14 +13792,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
13788
13792
|
// Approach 1: Total Count is known, get next page upon scroll. (Will only have multiple pages / pageable)
|
|
13789
13793
|
// Approach 2: Total Count is not known, append more data at runtime. (Will only have 1 page / not pageable)
|
|
13790
13794
|
class VirtualScrollComponent extends ContainerFieldBase {
|
|
13791
|
-
constructor(componentService) {
|
|
13795
|
+
constructor(componentService, fontAweSomeService) {
|
|
13792
13796
|
super(componentService);
|
|
13797
|
+
this.fontAweSomeService = fontAweSomeService;
|
|
13798
|
+
this.collapsedGroupBy = []; // Used to define animation status
|
|
13799
|
+
this.groupByValueToExpand = ''; // Used to define animation status
|
|
13800
|
+
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
|
|
13801
|
+
this.fullDataItems = [];
|
|
13802
|
+
this.dataItems = [];
|
|
13793
13803
|
this.pageSize = 50;
|
|
13794
13804
|
this.pageFetched = [];
|
|
13795
13805
|
this.footerFields = [];
|
|
13796
13806
|
}
|
|
13797
13807
|
ngOnInit() {
|
|
13798
|
-
this.
|
|
13808
|
+
this.setupComponent();
|
|
13809
|
+
this.setupDataItems();
|
|
13799
13810
|
this.setupFooter();
|
|
13800
13811
|
super.initComponent().subscribe();
|
|
13801
13812
|
}
|
|
@@ -13810,7 +13821,8 @@ class VirtualScrollComponent extends ContainerFieldBase {
|
|
|
13810
13821
|
this.viewPort.scrollToIndex(0);
|
|
13811
13822
|
}
|
|
13812
13823
|
}
|
|
13813
|
-
|
|
13824
|
+
setupComponent() {
|
|
13825
|
+
this.collapsedGroupBy = [];
|
|
13814
13826
|
if (this.data.Options) {
|
|
13815
13827
|
if (typeof this.data.Options === 'string' && this.data.Options.startsWith('group.')) {
|
|
13816
13828
|
this.options = ZComponentHelper.getGroupValue(this.data.Options, this.group);
|
|
@@ -13820,36 +13832,49 @@ class VirtualScrollComponent extends ContainerFieldBase {
|
|
|
13820
13832
|
}
|
|
13821
13833
|
this.pageSize = this.options.pageSize || 50;
|
|
13822
13834
|
this.options.loadingLabel = this.options.loadingLabel || '<div>Loading</div>';
|
|
13823
|
-
this.setupDataItems();
|
|
13824
13835
|
}
|
|
13825
13836
|
}
|
|
13826
13837
|
appendData(dataItems) {
|
|
13827
|
-
this.dataItems = this.dataItems.concat(dataItems);
|
|
13828
|
-
this.
|
|
13829
|
-
this.
|
|
13838
|
+
// this.dataItems = this.dataItems.concat(dataItems);
|
|
13839
|
+
// this.pageSize = this.dataItems.length;
|
|
13840
|
+
this.fullDataItems = this.fullDataItems.concat(dataItems);
|
|
13841
|
+
this.pageSize = this.fullDataItems.length;
|
|
13842
|
+
this.computeDataItems();
|
|
13830
13843
|
}
|
|
13831
13844
|
setupDataItems() {
|
|
13832
13845
|
this.pageFetched = [];
|
|
13833
|
-
if (this.
|
|
13834
|
-
|
|
13835
|
-
|
|
13836
|
-
|
|
13837
|
-
console.error('DataItems cannot be more than total count.');
|
|
13838
|
-
return;
|
|
13839
|
-
}
|
|
13840
|
-
this.dataItems = this.options.dataItems.concat(Array(cnt).fill(false));
|
|
13841
|
-
const pageNoToMarkAsFetch = Math.ceil(this.options.dataItems.length / this.pageSize) - 1;
|
|
13842
|
-
for (let i = 0; i <= pageNoToMarkAsFetch; i++) {
|
|
13843
|
-
this.pageFetched.push(i);
|
|
13844
|
-
}
|
|
13846
|
+
if (this.data.DataSetResult) {
|
|
13847
|
+
let dataSetResult = this.data.DataSetResult;
|
|
13848
|
+
if (typeof dataSetResult == 'string' && dataSetResult.startsWith('group.')) {
|
|
13849
|
+
dataSetResult = ZComponentHelper.getGroupValue(dataSetResult, this.group);
|
|
13845
13850
|
}
|
|
13846
|
-
|
|
13847
|
-
|
|
13851
|
+
this.setData(dataSetResult);
|
|
13852
|
+
}
|
|
13853
|
+
else {
|
|
13854
|
+
this.dataItems = [];
|
|
13855
|
+
}
|
|
13856
|
+
}
|
|
13857
|
+
setData(dataSetResult) {
|
|
13858
|
+
if (dataSetResult.dataSet && Array.isArray(dataSetResult.dataSet) && dataSetResult.dataSet.length > 0) {
|
|
13859
|
+
const cnt = dataSetResult.totalCount - dataSetResult.dataSet.length;
|
|
13860
|
+
if (cnt < 0) {
|
|
13861
|
+
console.error('DataItems cannot be more than total count.');
|
|
13862
|
+
return;
|
|
13863
|
+
}
|
|
13864
|
+
this.dataItems = dataSetResult.dataSet.concat(Array(cnt).fill(false));
|
|
13865
|
+
const pageNoToMarkAsFetch = Math.ceil(dataSetResult.dataSet.length / this.pageSize) - 1;
|
|
13866
|
+
for (let i = 0; i <= pageNoToMarkAsFetch; i++) {
|
|
13867
|
+
this.pageFetched.push(i);
|
|
13848
13868
|
}
|
|
13849
13869
|
}
|
|
13870
|
+
else if (dataSetResult.totalCount) {
|
|
13871
|
+
this.dataItems = Array(dataSetResult.totalCount).fill(false);
|
|
13872
|
+
}
|
|
13850
13873
|
else {
|
|
13851
|
-
this.dataItems =
|
|
13874
|
+
this.dataItems = [];
|
|
13852
13875
|
}
|
|
13876
|
+
this.fullDataItems = this.dataItems;
|
|
13877
|
+
this.computeDataItems();
|
|
13853
13878
|
}
|
|
13854
13879
|
populateListData() {
|
|
13855
13880
|
const renderRange = this.viewPort.getRenderedRange();
|
|
@@ -13878,8 +13903,8 @@ class VirtualScrollComponent extends ContainerFieldBase {
|
|
|
13878
13903
|
}
|
|
13879
13904
|
}
|
|
13880
13905
|
fetchData(pageNo) {
|
|
13881
|
-
if (this.data
|
|
13882
|
-
const onScrollEvent = ZComponentHelper.getGroupEvalValue.call(this, this.data
|
|
13906
|
+
if (this.data.OnScroll && typeof this.data.OnScroll == 'string' && this.data.OnScroll.startsWith('group.')) {
|
|
13907
|
+
const onScrollEvent = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnScroll);
|
|
13883
13908
|
if (typeof onScrollEvent === 'function') {
|
|
13884
13909
|
const callFunc = onScrollEvent.bind(this.group.ctrlScope);
|
|
13885
13910
|
return callFunc(this.group, { pageNo: pageNo, pageSize: this.pageSize });
|
|
@@ -13900,13 +13925,72 @@ class VirtualScrollComponent extends ContainerFieldBase {
|
|
|
13900
13925
|
this.footerFields = this.data.Value.filter(x => x.Section === 'footer');
|
|
13901
13926
|
}
|
|
13902
13927
|
}
|
|
13928
|
+
//#region Group By
|
|
13929
|
+
getGroupByLabelTemplate(dataItem, options) {
|
|
13930
|
+
if (options.groupByLabelTemplate && typeof options.groupByLabelTemplate == 'string') {
|
|
13931
|
+
if (options.groupByLabelTemplate.startsWith('group.')) {
|
|
13932
|
+
const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(this, options.groupByLabelTemplate);
|
|
13933
|
+
if (getTemplateFunc) {
|
|
13934
|
+
return getTemplateFunc({
|
|
13935
|
+
dataItem,
|
|
13936
|
+
options,
|
|
13937
|
+
});
|
|
13938
|
+
}
|
|
13939
|
+
}
|
|
13940
|
+
else {
|
|
13941
|
+
return dataItem[options.groupByLabelTemplate];
|
|
13942
|
+
}
|
|
13943
|
+
}
|
|
13944
|
+
}
|
|
13945
|
+
groupByOnClick(groupByValue) {
|
|
13946
|
+
if (!this.options.isGroupByCollapsible) {
|
|
13947
|
+
return;
|
|
13948
|
+
}
|
|
13949
|
+
// use collapse / expand to control animation sequence
|
|
13950
|
+
const isToCollapse = !this.collapsedGroupBy.includes(groupByValue);
|
|
13951
|
+
const firstNodeIndex = this.fullDataItems.map(x => x[this.options.groupBy]).indexOf(groupByValue);
|
|
13952
|
+
if (isToCollapse) {
|
|
13953
|
+
// to collapse (For animation: Change status, then append data)
|
|
13954
|
+
this.collapsedGroupBy.push(groupByValue);
|
|
13955
|
+
this.collapsedGroupBy_FirstNodeIndexList.push(firstNodeIndex);
|
|
13956
|
+
of({}).pipe(delay$1(400), tap$1(() => this.computeDataItems())).subscribe();
|
|
13957
|
+
}
|
|
13958
|
+
else {
|
|
13959
|
+
// to expand (For animation: Append data, then change status)
|
|
13960
|
+
this.collapsedGroupBy_FirstNodeIndexList = this.collapsedGroupBy_FirstNodeIndexList.filter(x => x != firstNodeIndex);
|
|
13961
|
+
const tempCollapsedGroupBy = this.collapsedGroupBy.filter(x => x !== groupByValue);
|
|
13962
|
+
this.dataItems = this.fullDataItems.filter((x, index) => !tempCollapsedGroupBy.includes(x[this.options.groupBy]) || this.collapsedGroupBy_FirstNodeIndexList.includes(index));
|
|
13963
|
+
this.groupByValueToExpand = groupByValue;
|
|
13964
|
+
of({}).pipe(delay$1(0), tap$1(() => {
|
|
13965
|
+
this.collapsedGroupBy = tempCollapsedGroupBy;
|
|
13966
|
+
this.groupByValueToExpand = groupByValue;
|
|
13967
|
+
})).subscribe();
|
|
13968
|
+
}
|
|
13969
|
+
}
|
|
13970
|
+
computeDataItems() {
|
|
13971
|
+
this.dataItems = this.fullDataItems.filter((x, index) => !this.collapsedGroupBy.includes(x[this.options.groupBy]) || this.collapsedGroupBy_FirstNodeIndexList.includes(index));
|
|
13972
|
+
}
|
|
13973
|
+
expandAll() {
|
|
13974
|
+
this.collapsedGroupBy = [];
|
|
13975
|
+
this.computeDataItems();
|
|
13976
|
+
}
|
|
13977
|
+
expandByGroupByValues(groupByValue) {
|
|
13978
|
+
this.collapsedGroupBy = this.collapsedGroupBy.filter(x => !groupByValue.includes(x));
|
|
13979
|
+
this.computeDataItems();
|
|
13980
|
+
}
|
|
13903
13981
|
}
|
|
13904
|
-
VirtualScrollComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VirtualScrollComponent, deps: [{ token: ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13905
|
-
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:
|
|
13982
|
+
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 });
|
|
13983
|
+
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: [
|
|
13984
|
+
collapseAnimation,
|
|
13985
|
+
rotateAnimation
|
|
13986
|
+
] });
|
|
13906
13987
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VirtualScrollComponent, decorators: [{
|
|
13907
13988
|
type: Component,
|
|
13908
|
-
args: [{ selector: "app-virtual-scroll",
|
|
13909
|
-
|
|
13989
|
+
args: [{ selector: "app-virtual-scroll", animations: [
|
|
13990
|
+
collapseAnimation,
|
|
13991
|
+
rotateAnimation
|
|
13992
|
+
], 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"] }]
|
|
13993
|
+
}], ctorParameters: function () { return [{ type: ZComponentService }, { type: i2.FontAweSomeService }]; }, propDecorators: { viewPort: [{
|
|
13910
13994
|
type: ViewChild,
|
|
13911
13995
|
args: [CdkVirtualScrollViewport]
|
|
13912
13996
|
}] } });
|