mmhglobal-dynamicform 2.36.1 → 2.36.5
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 +13 -0
- package/esm2020/lib/components/fieldbase.component.mjs +3 -3
- package/esm2020/lib/services/main.service.mjs +78 -17
- package/esm2020/lib/services/zcomponent.service.mjs +3 -2
- package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +15 -23
- package/esm2020/lib/zganttchart/zganttchart.component.mjs +3 -3
- package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +26 -4
- package/esm2020/lib/zgrid/zgrid.component.mjs +5 -5
- package/esm2020/lib/ztextarea/ztextarea.component.mjs +3 -7
- package/esm2020/lib/zudf/zudf.component.mjs +3 -3
- package/fesm2015/mmhglobal-dynamicform.mjs +130 -56
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +129 -56
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/services/main.service.d.ts +8 -3
- package/lib/uiappmenucontent/uiappmenucontent.component.d.ts +4 -2
- package/lib/zgrid/zgrid.binding.directive.d.ts +4 -1
- package/package.json +1 -1
|
@@ -832,7 +832,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
832
832
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AlertService }, { type: i2.AuthService }, { type: i2.FieldService }, { type: i2.ResourceApiService }, { type: i2.ComponentErrorHandlerService }, { type: i2.ToastService }, { type: i3.ModalService }, { type: i2.WebApiService }, { type: i2.SignalrService }, { type: i2.ZCoreService }]; } });
|
|
833
833
|
|
|
834
834
|
class MainService {
|
|
835
|
-
constructor(router, activatedRoute, modalCtrl, navController, alertService, cacheService, fieldService, resourceApiService, componentErrorHandlerService, webApiService, zcoreService, modalService, storageService, debugService, translationService, signalrService, dialogService, oauth2Service, toastService, authService) {
|
|
835
|
+
constructor(router, activatedRoute, modalCtrl, navController, alertService, cacheService, fieldService, resourceApiService, componentErrorHandlerService, webApiService, zcoreService, modalService, storageService, debugService, translationService, signalrService, dialogService, oauth2Service, toastService, authService, menuService) {
|
|
836
836
|
this.router = router;
|
|
837
837
|
this.activatedRoute = activatedRoute;
|
|
838
838
|
this.modalCtrl = modalCtrl;
|
|
@@ -853,6 +853,7 @@ class MainService {
|
|
|
853
853
|
this.oauth2Service = oauth2Service;
|
|
854
854
|
this.toastService = toastService;
|
|
855
855
|
this.authService = authService;
|
|
856
|
+
this.menuService = menuService;
|
|
856
857
|
this.backNavigationPath = [];
|
|
857
858
|
this.routeParam = [];
|
|
858
859
|
this.currentUrl = '';
|
|
@@ -899,7 +900,7 @@ class MainService {
|
|
|
899
900
|
this.previousUrl = this.currentUrl || window.location.pathname;
|
|
900
901
|
this.currentUrl = event.url;
|
|
901
902
|
const triggerType = this.previousUrl === this.currentUrl ? TriggerFromType.refreshStart : TriggerFromType.navigateStart;
|
|
902
|
-
this.
|
|
903
|
+
this.updateAppMonPerformance(triggerType, this.previousUrl, true).subscribe();
|
|
903
904
|
this.dismissAllOverlays();
|
|
904
905
|
if (this.getStartupPage() === event.url) {
|
|
905
906
|
this.resetRouteParam();
|
|
@@ -908,27 +909,45 @@ class MainService {
|
|
|
908
909
|
handleNavigationEnd(event) {
|
|
909
910
|
const duration = performance.now() - this.navigationStartTime;
|
|
910
911
|
const triggerType = this.previousUrl === this.currentUrl ? TriggerFromType.refreshEnd : TriggerFromType.navigateEnd;
|
|
911
|
-
this.
|
|
912
|
+
this.updateAppMonPerformance(triggerType, event.urlAfterRedirects, true, duration).subscribe();
|
|
912
913
|
this.currentUrl = event.urlAfterRedirects;
|
|
913
914
|
console.log(event);
|
|
914
915
|
}
|
|
915
916
|
handleNavigationError(event) {
|
|
916
917
|
const duration = performance.now() - this.navigationStartTime;
|
|
917
|
-
this.
|
|
918
|
+
this.updateAppMonPerformance(TriggerFromType.navigateError, this.previousUrl, false, duration).subscribe();
|
|
918
919
|
console.log(event.error);
|
|
919
920
|
this.removeLastNavigateRecord();
|
|
920
921
|
}
|
|
921
|
-
|
|
922
|
+
updateAppMonPerformance(triggerType, url, isSuccess, duration) {
|
|
923
|
+
var _a;
|
|
924
|
+
// Initialize appmonDomainUrl if missing
|
|
922
925
|
if (!this.resourceApiService.appmonDomainUrl) {
|
|
923
|
-
this.resourceApiService.appmonDomainUrl = sessionStorage.getItem('
|
|
926
|
+
this.resourceApiService.appmonDomainUrl = sessionStorage.getItem('AppmonDomainUrl') || '';
|
|
924
927
|
}
|
|
925
|
-
|
|
926
|
-
const pad = (n) => n.toString().padStart(2, '0');
|
|
927
|
-
const timestamp = `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}.${date.getMilliseconds().toString().padStart(7, '0')}`;
|
|
928
|
-
const currentDomain = window.location.origin; // Extract the current domain
|
|
928
|
+
// Check for required dependencies
|
|
929
929
|
if (!this.authService.e1Token || !this.resourceApiService.appmonDomainUrl) {
|
|
930
930
|
return of({});
|
|
931
931
|
}
|
|
932
|
+
const getCurrentTimestamp = () => {
|
|
933
|
+
const date = new Date();
|
|
934
|
+
const pad = (n) => n.toString().padStart(2, '0');
|
|
935
|
+
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}.${date.getMilliseconds().toString().padStart(7, '0')}`;
|
|
936
|
+
};
|
|
937
|
+
const timestamp = getCurrentTimestamp();
|
|
938
|
+
const currentDomain = window.location.origin;
|
|
939
|
+
// Determine menu name
|
|
940
|
+
const LOGIN_PAGE = 'LoginPage';
|
|
941
|
+
const HOME_PAGE = 'HomePage';
|
|
942
|
+
const AUTH_PATH = '/auth';
|
|
943
|
+
let menuName = sessionStorage.getItem('menuName') || null;
|
|
944
|
+
if (window.location.pathname === AUTH_PATH) {
|
|
945
|
+
menuName = LOGIN_PAGE;
|
|
946
|
+
}
|
|
947
|
+
else if (window.location.pathname === this.environment.startUpPage) {
|
|
948
|
+
menuName = HOME_PAGE;
|
|
949
|
+
}
|
|
950
|
+
// Build the request payload
|
|
932
951
|
const params = {
|
|
933
952
|
Url: `${currentDomain}${url}`,
|
|
934
953
|
IsAuthenticated: true,
|
|
@@ -936,7 +955,7 @@ class MainService {
|
|
|
936
955
|
Duration: duration !== null && duration !== void 0 ? duration : null,
|
|
937
956
|
RequestMethod: 'POST',
|
|
938
957
|
UserName: this.authService.userId,
|
|
939
|
-
UserId: this.authService.e1Token.userName,
|
|
958
|
+
UserId: ((_a = this.authService.e1Token) === null || _a === void 0 ? void 0 : _a.userName) || '',
|
|
940
959
|
Success: isSuccess,
|
|
941
960
|
Environment: 'UI',
|
|
942
961
|
ProjectCode: this.environment.projectCodes[0],
|
|
@@ -944,10 +963,13 @@ class MainService {
|
|
|
944
963
|
ComponentCode: null,
|
|
945
964
|
EventId: null,
|
|
946
965
|
EventType: triggerType,
|
|
947
|
-
SessionId: sessionStorage.getItem('sessionTabId')
|
|
966
|
+
SessionId: sessionStorage.getItem('sessionTabId'),
|
|
967
|
+
MenuName: menuName,
|
|
948
968
|
};
|
|
949
|
-
//
|
|
950
|
-
|
|
969
|
+
// API Endpoint
|
|
970
|
+
const apiEndpoint = `${this.resourceApiService.appmonDomainUrl}api/ApiSummaryInfos/`;
|
|
971
|
+
// Call the web API and handle errors
|
|
972
|
+
return this.webApiService.httpPost$(apiEndpoint, params);
|
|
951
973
|
}
|
|
952
974
|
dialogOpen(options) {
|
|
953
975
|
return this.dialogService.open(options);
|
|
@@ -1204,6 +1226,46 @@ class MainService {
|
|
|
1204
1226
|
}
|
|
1205
1227
|
return false;
|
|
1206
1228
|
}
|
|
1229
|
+
menuOnClick(item) {
|
|
1230
|
+
const { AppClientPath: appClientPath, URL: pathName, Name: name } = item;
|
|
1231
|
+
const startupPage = this.zcoreService.getEnvironment().startUpPage.toLowerCase();
|
|
1232
|
+
const LAUNCHER = 'launcher';
|
|
1233
|
+
// Save menu name to sessionStorage
|
|
1234
|
+
this.menuService.setMenuName(name);
|
|
1235
|
+
// Handle app client path navigation
|
|
1236
|
+
if (appClientPath && startupPage === LAUNCHER) {
|
|
1237
|
+
return this.handleAppClientNavigation(pathName, appClientPath);
|
|
1238
|
+
}
|
|
1239
|
+
// Determine navigation path
|
|
1240
|
+
const navigationPath = this.getNavigationPath(startupPage, pathName);
|
|
1241
|
+
// Navigate to the determined path
|
|
1242
|
+
return this.navigateToPath(navigationPath, pathName);
|
|
1243
|
+
}
|
|
1244
|
+
handleAppClientNavigation(pathName, appClientPath) {
|
|
1245
|
+
try {
|
|
1246
|
+
ZComponentHelper.openAppClientPath(pathName, appClientPath, this.authService);
|
|
1247
|
+
return false;
|
|
1248
|
+
}
|
|
1249
|
+
catch (error) {
|
|
1250
|
+
console.warn(`Failed to open App Client Path for ${pathName}:`, error);
|
|
1251
|
+
return false;
|
|
1252
|
+
}
|
|
1253
|
+
}
|
|
1254
|
+
getNavigationPath(startupPage, pathName) {
|
|
1255
|
+
const MENU_PAGE_PREFIX = '_';
|
|
1256
|
+
return startupPage.startsWith(MENU_PAGE_PREFIX) ? [startupPage] : [pathName];
|
|
1257
|
+
}
|
|
1258
|
+
navigateToPath(navigationPath, pathName) {
|
|
1259
|
+
try {
|
|
1260
|
+
this.setNavigationParams(navigationPath);
|
|
1261
|
+
this.router.navigate([pathName]);
|
|
1262
|
+
return true;
|
|
1263
|
+
}
|
|
1264
|
+
catch (error) {
|
|
1265
|
+
console.warn(`Navigation to ${pathName} failed:`, error);
|
|
1266
|
+
return false;
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1207
1269
|
navigateFromMenu(pageName) {
|
|
1208
1270
|
const { startUpPage } = this.environment;
|
|
1209
1271
|
this.setRouteParam([`${startUpPage}`]);
|
|
@@ -2055,14 +2117,14 @@ class MainService {
|
|
|
2055
2117
|
}
|
|
2056
2118
|
}
|
|
2057
2119
|
}
|
|
2058
|
-
MainService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: MainService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2$1.ModalController }, { token: i2$1.NavController }, { token: i2.AlertService }, { token: i2.CacheService }, { token: i2.FieldService }, { token: i2.ResourceApiService }, { token: i2.ComponentErrorHandlerService }, { token: i2.WebApiService }, { token: i2.ZCoreService }, { token: i3.ModalService }, { token: i2.StorageSessionService }, { token: ZComponentDebugService }, { token: i2.TranslationService }, { token: i2.SignalrService }, { token: i6.DialogService }, { token: i2.OAuth2Service }, { token: i2.ToastService }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2120
|
+
MainService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: MainService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2$1.ModalController }, { token: i2$1.NavController }, { token: i2.AlertService }, { token: i2.CacheService }, { token: i2.FieldService }, { token: i2.ResourceApiService }, { token: i2.ComponentErrorHandlerService }, { token: i2.WebApiService }, { token: i2.ZCoreService }, { token: i3.ModalService }, { token: i2.StorageSessionService }, { token: ZComponentDebugService }, { token: i2.TranslationService }, { token: i2.SignalrService }, { token: i6.DialogService }, { token: i2.OAuth2Service }, { token: i2.ToastService }, { token: i2.AuthService }, { token: i2.MenuService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2059
2121
|
MainService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: MainService, providedIn: 'root' });
|
|
2060
2122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: MainService, decorators: [{
|
|
2061
2123
|
type: Injectable,
|
|
2062
2124
|
args: [{
|
|
2063
2125
|
providedIn: 'root',
|
|
2064
2126
|
}]
|
|
2065
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2$1.ModalController }, { type: i2$1.NavController }, { type: i2.AlertService }, { type: i2.CacheService }, { type: i2.FieldService }, { type: i2.ResourceApiService }, { type: i2.ComponentErrorHandlerService }, { type: i2.WebApiService }, { type: i2.ZCoreService }, { type: i3.ModalService }, { type: i2.StorageSessionService }, { type: ZComponentDebugService }, { type: i2.TranslationService }, { type: i2.SignalrService }, { type: i6.DialogService }, { type: i2.OAuth2Service }, { type: i2.ToastService }, { type: i2.AuthService }]; } });
|
|
2127
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2$1.ModalController }, { type: i2$1.NavController }, { type: i2.AlertService }, { type: i2.CacheService }, { type: i2.FieldService }, { type: i2.ResourceApiService }, { type: i2.ComponentErrorHandlerService }, { type: i2.WebApiService }, { type: i2.ZCoreService }, { type: i3.ModalService }, { type: i2.StorageSessionService }, { type: ZComponentDebugService }, { type: i2.TranslationService }, { type: i2.SignalrService }, { type: i6.DialogService }, { type: i2.OAuth2Service }, { type: i2.ToastService }, { type: i2.AuthService }, { type: i2.MenuService }]; } });
|
|
2066
2128
|
function refreshGrid(group) {
|
|
2067
2129
|
const zgridControl = group["gridOptions"];
|
|
2068
2130
|
if (zgridControl) {
|
|
@@ -2306,7 +2368,8 @@ class ZComponentService {
|
|
|
2306
2368
|
if (this.timePickerDateType.includes(data.Type)) {
|
|
2307
2369
|
const userTimeZoneOffSet = this.convertOffsetMinToHour((new Date(value).getTimezoneOffset()));
|
|
2308
2370
|
const datetimeWithoutTimeZone = this.removeTimeZoneAndConvertToISOString(value);
|
|
2309
|
-
return new Date(`${datetimeWithoutTimeZone.split('.000Z')[0]}${userTimeZoneOffSet}`);
|
|
2371
|
+
//return new Date(`${datetimeWithoutTimeZone.split('.000Z')[0]}${userTimeZoneOffSet}`);
|
|
2372
|
+
return new Date(`${datetimeWithoutTimeZone.split('Z')[0]}${userTimeZoneOffSet}`);
|
|
2310
2373
|
}
|
|
2311
2374
|
else if (data.Type === 'zshortdate') {
|
|
2312
2375
|
const dateOnly = value.includes('T') ? value.split('T')[0] : value; // Extract date portion
|
|
@@ -2531,7 +2594,7 @@ class ZGridBindingDirective extends DataBindingDirective {
|
|
|
2531
2594
|
webapiService, toastService,
|
|
2532
2595
|
//private mainService: MainService,
|
|
2533
2596
|
//private offlineDatabaseService: OfflineDatabaseService,
|
|
2534
|
-
signalrService, gridService, loggingService, stateSettingService) {
|
|
2597
|
+
signalrService, gridService, loggingService, stateSettingService, componentService) {
|
|
2535
2598
|
super(grid);
|
|
2536
2599
|
this.webapiService = webapiService;
|
|
2537
2600
|
this.toastService = toastService;
|
|
@@ -2539,6 +2602,7 @@ class ZGridBindingDirective extends DataBindingDirective {
|
|
|
2539
2602
|
this.gridService = gridService;
|
|
2540
2603
|
this.loggingService = loggingService;
|
|
2541
2604
|
this.stateSettingService = stateSettingService;
|
|
2605
|
+
this.componentService = componentService;
|
|
2542
2606
|
this.changeEvent = {
|
|
2543
2607
|
pageChanged: false,
|
|
2544
2608
|
filterChanged: false,
|
|
@@ -3005,6 +3069,7 @@ class ZGridBindingDirective extends DataBindingDirective {
|
|
|
3005
3069
|
}
|
|
3006
3070
|
handleGetDataBindingComplete(data, skipCacheData) {
|
|
3007
3071
|
this.aggregateHandling(data.dataSet);
|
|
3072
|
+
this.handleDateTimeIgnoringTimeZone(data.dataSet);
|
|
3008
3073
|
this.grid.data = { data: data.dataSet, total: data.totalCount };
|
|
3009
3074
|
if (!skipCacheData) {
|
|
3010
3075
|
const stateLogic = this.gridService.getGridStateLogic(this.field);
|
|
@@ -3190,6 +3255,25 @@ class ZGridBindingDirective extends DataBindingDirective {
|
|
|
3190
3255
|
col.aggregateValue = aggregateValue;
|
|
3191
3256
|
});
|
|
3192
3257
|
}
|
|
3258
|
+
handleDateTimeIgnoringTimeZone(dataSet) {
|
|
3259
|
+
// Column types related to date and time handling
|
|
3260
|
+
const dateColumnTypes = ['zdate', 'ztime', 'zdatetime', 'zshortdate', 'zuidatetime', 'zuitime'];
|
|
3261
|
+
// Filter columns that have date-related types
|
|
3262
|
+
const dateTimeColumns = this.gridSetting.columns.filter(col => dateColumnTypes.includes(col.Type));
|
|
3263
|
+
// Filter columns where the timezone should be ignored
|
|
3264
|
+
const ignoreTimeZoneColumns = dateTimeColumns.filter(col => col.IsIgnoreTimeZone);
|
|
3265
|
+
// If there are columns that should ignore the timezone
|
|
3266
|
+
if (ignoreTimeZoneColumns.length > 0) {
|
|
3267
|
+
dataSet.forEach(data => {
|
|
3268
|
+
ignoreTimeZoneColumns.forEach(col => {
|
|
3269
|
+
// Adjust datetime based on the timezone ignoring setting
|
|
3270
|
+
if (data[col.Value]) {
|
|
3271
|
+
data[col.Value] = this.componentService.localizeDateTimeByIgnoringTimeZone(data[col.Value], col);
|
|
3272
|
+
}
|
|
3273
|
+
});
|
|
3274
|
+
});
|
|
3275
|
+
}
|
|
3276
|
+
}
|
|
3193
3277
|
/**
|
|
3194
3278
|
* Reset aggregate values for columns with aggregate types.
|
|
3195
3279
|
*
|
|
@@ -3355,7 +3439,7 @@ class ZGridBindingDirective extends DataBindingDirective {
|
|
|
3355
3439
|
this.loggingService.debugLog('generated grid columns', this.gridSetting);
|
|
3356
3440
|
}
|
|
3357
3441
|
}
|
|
3358
|
-
ZGridBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZGridBindingDirective, deps: [{ token: GridComponent }, { token: i2.WebApiService }, { token: i2.ToastService }, { token: i2.SignalrService }, { token: ZGridService }, { token: i2.LoggingService }, { token: i2.StateSettingService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3442
|
+
ZGridBindingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZGridBindingDirective, deps: [{ token: GridComponent }, { token: i2.WebApiService }, { token: i2.ToastService }, { token: i2.SignalrService }, { token: ZGridService }, { token: i2.LoggingService }, { token: i2.StateSettingService }, { token: ZComponentService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3359
3443
|
ZGridBindingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.3", type: ZGridBindingDirective, selector: "[zgridbinding]", inputs: { zgridbinding: "zgridbinding" }, usesInheritance: true, ngImport: i0 });
|
|
3360
3444
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZGridBindingDirective, decorators: [{
|
|
3361
3445
|
type: Directive,
|
|
@@ -3366,7 +3450,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
3366
3450
|
return [{ type: undefined, decorators: [{
|
|
3367
3451
|
type: Inject,
|
|
3368
3452
|
args: [GridComponent]
|
|
3369
|
-
}] }, { type: i2.WebApiService }, { type: i2.ToastService }, { type: i2.SignalrService }, { type: ZGridService }, { type: i2.LoggingService }, { type: i2.StateSettingService }];
|
|
3453
|
+
}] }, { type: i2.WebApiService }, { type: i2.ToastService }, { type: i2.SignalrService }, { type: ZGridService }, { type: i2.LoggingService }, { type: i2.StateSettingService }, { type: ZComponentService }];
|
|
3370
3454
|
}, propDecorators: { zgridbinding: [{
|
|
3371
3455
|
type: Input
|
|
3372
3456
|
}] } });
|
|
@@ -4461,10 +4545,10 @@ class FieldBase {
|
|
|
4461
4545
|
this.componentProperties.isRequired = status;
|
|
4462
4546
|
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
|
|
4463
4547
|
if (this.data.Type === 'ztexteditor') {
|
|
4464
|
-
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, ZComponentHelper.
|
|
4548
|
+
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, ZComponentHelper.requiredValidator_ExcludeWhiteSpacesAndHTMLTags);
|
|
4465
4549
|
}
|
|
4466
4550
|
else {
|
|
4467
|
-
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, ZComponentHelper.
|
|
4551
|
+
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, ZComponentHelper.requiredValidator_ExcludeWhiteSpaces);
|
|
4468
4552
|
}
|
|
4469
4553
|
};
|
|
4470
4554
|
}
|
|
@@ -5349,32 +5433,25 @@ class UiappmenucontentComponent {
|
|
|
5349
5433
|
this.authService = authService;
|
|
5350
5434
|
this.zcoreService = zcoreService;
|
|
5351
5435
|
this.mainService = mainService;
|
|
5436
|
+
this.MENU_TYPE_DROPDOWN_SUBMENU = 'dropdown-submenu';
|
|
5352
5437
|
}
|
|
5353
5438
|
ngOnInit() {
|
|
5354
5439
|
}
|
|
5355
5440
|
getDivClass(item) {
|
|
5356
|
-
|
|
5441
|
+
if (!item || !item.Type)
|
|
5442
|
+
return 'col-xs-4 col-sm-4 col-md-3 col-xl-2 menu-col';
|
|
5443
|
+
return (item.Type === this.MENU_TYPE_DROPDOWN_SUBMENU ? 'flex-show' : 'col-xs-4 col-sm-4 col-md-3 col-xl-2') + ' menu-col';
|
|
5357
5444
|
}
|
|
5358
5445
|
getMenuList(item) {
|
|
5359
|
-
|
|
5446
|
+
if (!item || item.Type !== this.MENU_TYPE_DROPDOWN_SUBMENU)
|
|
5447
|
+
return null;
|
|
5448
|
+
return this.menuService.getMenuFolder(item.URL);
|
|
5360
5449
|
}
|
|
5361
|
-
|
|
5362
|
-
|
|
5363
|
-
|
|
5364
|
-
|
|
5365
|
-
|
|
5366
|
-
}
|
|
5367
|
-
else {
|
|
5368
|
-
if (startupPage.indexOf('_', 0) == 0) {
|
|
5369
|
-
// menu page
|
|
5370
|
-
this.mainService.setNavigationParams([startupPage]);
|
|
5371
|
-
}
|
|
5372
|
-
else {
|
|
5373
|
-
// home page
|
|
5374
|
-
this.mainService.setNavigationParams([pathName]);
|
|
5375
|
-
}
|
|
5376
|
-
this.router.navigate([pathName]);
|
|
5377
|
-
}
|
|
5450
|
+
trackByFn(index, item) {
|
|
5451
|
+
return item.URL || index.toString(); // Unique identifier or fallback to index
|
|
5452
|
+
}
|
|
5453
|
+
menuOnClick(item) {
|
|
5454
|
+
return this.mainService.menuOnClick(item);
|
|
5378
5455
|
}
|
|
5379
5456
|
setMapInput(key, value) {
|
|
5380
5457
|
const mapInput = document.createElement('input');
|
|
@@ -5385,10 +5462,10 @@ class UiappmenucontentComponent {
|
|
|
5385
5462
|
}
|
|
5386
5463
|
}
|
|
5387
5464
|
UiappmenucontentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiappmenucontentComponent, deps: [{ token: i1.Router }, { token: i2.MenuService }, { token: i2.AuthService }, { token: i2.ZCoreService }, { token: MainService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5388
|
-
UiappmenucontentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: UiappmenucontentComponent, selector: "app-uiappmenucontent", inputs: { items: "items" }, ngImport: i0, template: "<ion-grid>\r\n <ion-row>\r\n <ion-col
|
|
5465
|
+
UiappmenucontentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: UiappmenucontentComponent, selector: "app-uiappmenucontent", inputs: { items: "items" }, ngImport: i0, template: "<ion-grid>\r\n <ion-row>\r\n <ion-col\r\n [ngClass]=\"getDivClass(item)\"\r\n *ngFor=\"let item of items; index as i; trackBy: trackByFn\"\r\n >\r\n\r\n <!-- Regular Menu Item (non-submenu) -->\r\n <div\r\n *ngIf=\"item.Type !== MENU_TYPE_DROPDOWN_SUBMENU\"\r\n class=\"menu-btn ion-activatable ripple-parent\"\r\n (click)=\"menuOnClick(item)\">\r\n <ion-label class=\"menu-btn-label menu-btn-icon\">\r\n <fa-icon\r\n class=\"menu-icon\"\r\n [icon]=\"['fas', item.Icon]\"\r\n [inverse]=\"true\"\r\n ></fa-icon>\r\n\r\n <!-- 1) Spinner if loading -->\r\n <ion-badge \r\n class=\"pending-counter\"\r\n *ngIf=\"item.counterLoading\">\r\n <ion-spinner name=\"bubbles\"></ion-spinner>\r\n </ion-badge>\r\n\r\n <!-- 2) Numeric badge if loaded & > 0 -->\r\n <ion-badge\r\n class=\"pending-counter\"\r\n *ngIf=\"!item.counterLoading && item.PendingCounter && item.PendingCounter > 0\">\r\n {{ item.PendingCounter }}\r\n </ion-badge>\r\n </ion-label>\r\n\r\n <ion-label class=\"menu-btn-label-text\">\r\n {{ item.Label }}\r\n </ion-label>\r\n\r\n <ion-label\r\n *ngIf=\"item.Description\"\r\n class=\"menu-btn-label-text menu-btn-label-text-desc\"\r\n >\r\n {{ item.Description }}\r\n </ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </div>\r\n\r\n <!-- Dropdown Submenu -->\r\n <kendo-card *ngIf=\"item.Type === MENU_TYPE_DROPDOWN_SUBMENU\">\r\n <kendo-card-header class=\"k-hstack\">\r\n <ion-label class=\"card-title\" kendoCardTitle>\r\n {{ item.Label }}\r\n </ion-label>\r\n </kendo-card-header>\r\n <kendo-card-body>\r\n <div>\r\n <app-uiappmenucontent [items]=\"getMenuList(item) || []\"></app-uiappmenucontent>\r\n </div>\r\n </kendo-card-body>\r\n </kendo-card>\r\n </ion-col>\r\n </ion-row>\r\n</ion-grid>\r\n", styles: ["ion-grid{max-width:2000px;margin-top:10px}:host ::ng-deep kendo-card{width:95%!important;margin:auto auto 10px;border-radius:var(--ion-container-border-radius);border-left:5px solid var(--ion-color-primary)}:host ::ng-deep kendo-card .k-card-body{padding-top:0}.menu-col{padding:10px}.menu-btn{margin:0;padding:0;border:0px;display:flex;flex-flow:column;align-items:stretch;background-color:#fff;cursor:pointer;border-radius:5px;box-shadow:1px 1px 4px #797979;min-width:180px;max-width:250px;min-height:123px;max-height:123px;color:#fff;background:var(--ion-color-primary)}.menu-btn:hover{box-shadow:0 0 2px 2px var(--ion-color-secondary)}.menu-btn:hover .menu-btn-label-text-desc{bottom:0;transition:.5s ease bottom;width:100%}.menu-btn-label-text{text-align:center;font-size:16px;font-weight:600;padding:10px 5px}.menu-btn-label-text-desc{bottom:-100%;transition:.5s ease bottom;display:block;position:absolute;color:#000;font-size:16px;background-color:#fff;padding:8px 10px;border:1px solid #797979;border-radius:5px;text-shadow:0px 0px black;width:100%;text-align:left;font-size:14px;font-weight:500}.ripple-parent{position:relative;overflow:hidden}.menu-btn-label{text-align:center;font-size:15px}.menu-icon{zoom:3;position:relative;top:2px}.menu-btn-icon{position:relative;background-size:100%;text-align:center;font-size:15px;top:.4em}.pending-counter{position:absolute;top:.4em;right:.4em;background-color:#ff243a;color:#fff;border-radius:1em;min-width:2.5em;max-width:6em;height:1.5em;display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:0 .5em;box-sizing:border-box;font-size:1.2rem;line-height:1.1}\n"], components: [{ type: i2$1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { type: i2$1.IonRow, selector: "ion-row" }, { type: i2$1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { type: i2$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i4.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.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { type: i2$1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { type: i2$1.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }, { type: i2$5.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { type: i2$5.CardHeaderComponent, selector: "kendo-card-header" }, { type: i2$5.CardBodyComponent, selector: "kendo-card-body" }, { type: UiappmenucontentComponent, selector: "app-uiappmenucontent", inputs: ["items"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$5.CardTitleDirective, selector: "[kendoCardTitle]" }] });
|
|
5389
5466
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiappmenucontentComponent, decorators: [{
|
|
5390
5467
|
type: Component,
|
|
5391
|
-
args: [{ selector: 'app-uiappmenucontent', template: "<ion-grid>\r\n <ion-row>\r\n <ion-col
|
|
5468
|
+
args: [{ selector: 'app-uiappmenucontent', template: "<ion-grid>\r\n <ion-row>\r\n <ion-col\r\n [ngClass]=\"getDivClass(item)\"\r\n *ngFor=\"let item of items; index as i; trackBy: trackByFn\"\r\n >\r\n\r\n <!-- Regular Menu Item (non-submenu) -->\r\n <div\r\n *ngIf=\"item.Type !== MENU_TYPE_DROPDOWN_SUBMENU\"\r\n class=\"menu-btn ion-activatable ripple-parent\"\r\n (click)=\"menuOnClick(item)\">\r\n <ion-label class=\"menu-btn-label menu-btn-icon\">\r\n <fa-icon\r\n class=\"menu-icon\"\r\n [icon]=\"['fas', item.Icon]\"\r\n [inverse]=\"true\"\r\n ></fa-icon>\r\n\r\n <!-- 1) Spinner if loading -->\r\n <ion-badge \r\n class=\"pending-counter\"\r\n *ngIf=\"item.counterLoading\">\r\n <ion-spinner name=\"bubbles\"></ion-spinner>\r\n </ion-badge>\r\n\r\n <!-- 2) Numeric badge if loaded & > 0 -->\r\n <ion-badge\r\n class=\"pending-counter\"\r\n *ngIf=\"!item.counterLoading && item.PendingCounter && item.PendingCounter > 0\">\r\n {{ item.PendingCounter }}\r\n </ion-badge>\r\n </ion-label>\r\n\r\n <ion-label class=\"menu-btn-label-text\">\r\n {{ item.Label }}\r\n </ion-label>\r\n\r\n <ion-label\r\n *ngIf=\"item.Description\"\r\n class=\"menu-btn-label-text menu-btn-label-text-desc\"\r\n >\r\n {{ item.Description }}\r\n </ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </div>\r\n\r\n <!-- Dropdown Submenu -->\r\n <kendo-card *ngIf=\"item.Type === MENU_TYPE_DROPDOWN_SUBMENU\">\r\n <kendo-card-header class=\"k-hstack\">\r\n <ion-label class=\"card-title\" kendoCardTitle>\r\n {{ item.Label }}\r\n </ion-label>\r\n </kendo-card-header>\r\n <kendo-card-body>\r\n <div>\r\n <app-uiappmenucontent [items]=\"getMenuList(item) || []\"></app-uiappmenucontent>\r\n </div>\r\n </kendo-card-body>\r\n </kendo-card>\r\n </ion-col>\r\n </ion-row>\r\n</ion-grid>\r\n", styles: ["ion-grid{max-width:2000px;margin-top:10px}:host ::ng-deep kendo-card{width:95%!important;margin:auto auto 10px;border-radius:var(--ion-container-border-radius);border-left:5px solid var(--ion-color-primary)}:host ::ng-deep kendo-card .k-card-body{padding-top:0}.menu-col{padding:10px}.menu-btn{margin:0;padding:0;border:0px;display:flex;flex-flow:column;align-items:stretch;background-color:#fff;cursor:pointer;border-radius:5px;box-shadow:1px 1px 4px #797979;min-width:180px;max-width:250px;min-height:123px;max-height:123px;color:#fff;background:var(--ion-color-primary)}.menu-btn:hover{box-shadow:0 0 2px 2px var(--ion-color-secondary)}.menu-btn:hover .menu-btn-label-text-desc{bottom:0;transition:.5s ease bottom;width:100%}.menu-btn-label-text{text-align:center;font-size:16px;font-weight:600;padding:10px 5px}.menu-btn-label-text-desc{bottom:-100%;transition:.5s ease bottom;display:block;position:absolute;color:#000;font-size:16px;background-color:#fff;padding:8px 10px;border:1px solid #797979;border-radius:5px;text-shadow:0px 0px black;width:100%;text-align:left;font-size:14px;font-weight:500}.ripple-parent{position:relative;overflow:hidden}.menu-btn-label{text-align:center;font-size:15px}.menu-icon{zoom:3;position:relative;top:2px}.menu-btn-icon{position:relative;background-size:100%;text-align:center;font-size:15px;top:.4em}.pending-counter{position:absolute;top:.4em;right:.4em;background-color:#ff243a;color:#fff;border-radius:1em;min-width:2.5em;max-width:6em;height:1.5em;display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:0 .5em;box-sizing:border-box;font-size:1.2rem;line-height:1.1}\n"] }]
|
|
5392
5469
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.MenuService }, { type: i2.AuthService }, { type: i2.ZCoreService }, { type: MainService }]; }, propDecorators: { items: [{
|
|
5393
5470
|
type: Input
|
|
5394
5471
|
}] } });
|
|
@@ -8577,11 +8654,8 @@ class ZtextareaComponent extends InputFieldBase {
|
|
|
8577
8654
|
}
|
|
8578
8655
|
setCharCounterDisplayStr() {
|
|
8579
8656
|
let characterCount = 0;
|
|
8580
|
-
if (
|
|
8581
|
-
characterCount =
|
|
8582
|
-
}
|
|
8583
|
-
else {
|
|
8584
|
-
characterCount = ZComponentHelper.getValueWithoutContinuousSpaces(this.group.zModel[this.data.Value]).length;
|
|
8657
|
+
if (this.group.zModel && this.group.zModel[this.data.Value]) {
|
|
8658
|
+
characterCount = this.group.zModel[this.data.Value].length;
|
|
8585
8659
|
}
|
|
8586
8660
|
this.charCounterDisplayStr = `${characterCount} ${this.data.MaxLength ? (' / ' + this.data.MaxLength) : ''}`;
|
|
8587
8661
|
}
|
|
@@ -10247,10 +10321,10 @@ class ZgridComponent extends DataListingFieldBase {
|
|
|
10247
10321
|
if (col.IsRequired) {
|
|
10248
10322
|
validators.push(Validators.required);
|
|
10249
10323
|
if (col.Type === 'ztexteditor') {
|
|
10250
|
-
validators.push(ZComponentHelper.
|
|
10324
|
+
validators.push(ZComponentHelper.requiredValidator_ExcludeWhiteSpacesAndHTMLTags);
|
|
10251
10325
|
}
|
|
10252
10326
|
else {
|
|
10253
|
-
validators.push(ZComponentHelper.
|
|
10327
|
+
validators.push(ZComponentHelper.requiredValidator_ExcludeWhiteSpaces);
|
|
10254
10328
|
}
|
|
10255
10329
|
}
|
|
10256
10330
|
if (col.ValidatorPattern) {
|
|
@@ -10320,10 +10394,10 @@ class ZgridComponent extends DataListingFieldBase {
|
|
|
10320
10394
|
if (col.IsRequired) {
|
|
10321
10395
|
validators.push(Validators.required);
|
|
10322
10396
|
if (col.Type === 'ztexteditor') {
|
|
10323
|
-
validators.push(ZComponentHelper.
|
|
10397
|
+
validators.push(ZComponentHelper.requiredValidator_ExcludeWhiteSpacesAndHTMLTags);
|
|
10324
10398
|
}
|
|
10325
10399
|
else {
|
|
10326
|
-
validators.push(ZComponentHelper.
|
|
10400
|
+
validators.push(ZComponentHelper.requiredValidator_ExcludeWhiteSpaces);
|
|
10327
10401
|
}
|
|
10328
10402
|
}
|
|
10329
10403
|
if (col.ValidatorPattern) {
|
|
@@ -12859,10 +12933,10 @@ class ZudfComponent extends ContainerFieldBase {
|
|
|
12859
12933
|
this.componentProperties.isRequired = status;
|
|
12860
12934
|
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
|
|
12861
12935
|
if (this.data.Type === 'ztexteditor') {
|
|
12862
|
-
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, ZComponentHelper.
|
|
12936
|
+
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, ZComponentHelper.requiredValidator_ExcludeWhiteSpacesAndHTMLTags);
|
|
12863
12937
|
}
|
|
12864
12938
|
else {
|
|
12865
|
-
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, ZComponentHelper.
|
|
12939
|
+
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, ZComponentHelper.requiredValidator_ExcludeWhiteSpaces);
|
|
12866
12940
|
}
|
|
12867
12941
|
};
|
|
12868
12942
|
}
|
|
@@ -15132,10 +15206,10 @@ class ZganttchartComponent extends DataListingFieldBase {
|
|
|
15132
15206
|
}
|
|
15133
15207
|
}
|
|
15134
15208
|
ZganttchartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZganttchartComponent, deps: [{ token: ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15135
|
-
ZganttchartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZganttchartComponent, selector: "app-zganttchart", usesInheritance: true, ngImport: i0, template: "<kendo-gantt [style.height.px]=\"500\"\n [data]=\"ganttData\"\n kendoGanttExpandable\n [initiallyExpanded]=\"true\"\n [toolbarSettings]=\"{ position: 'both', addTaskTool: 'none' }\"\n [activeView]=\"activeView\"\n [sortable]=\"true\"\n [selectable]=\"selectable\"\n [isSelected]=\"isSelected\"\n (cellClick)=\"toggleSelection($event)\"\n (taskClick)=\"toggleSelection($event)\"\n [timelinePaneOptions]=\"{ collapsed: collapsed,\n collapsible: collapsible,\n size: timelineSize\n }\">\n <kendo-gantt-column *ngFor=\"let col of columns;\"\n [field]=\"col.field\"\n [title]=\"col.title\"\n [width]=\"col.width\"\n [format]=\"col.format\">\n </kendo-gantt-column>\n <ng-template kendoGanttToolbarTemplate\n position=\"both\"\n let-position=\"position\">\n <div *ngIf=\"position === 'top'\" class=\"toolbar-top\">\n <span>{{data.Title}}</span>\n <kendo-gantt-view-selector [views]=\"views\"\n [(activeView)]=\"activeView\"></kendo-gantt-view-selector>\n </div>\n <div *ngIf=\"position === 'bottom'\" class=\"toolbar-bottom\">\n <span>Total {{totalCount}} records</span>\n </div>\n </ng-template>\n <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>\n <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>\n <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>\n <kendo-gantt-timeline-year-view></kendo-gantt-timeline-year-view>\n</kendo-gantt>\n", styles: ["label.k-radio-label{display:inline-block;margin-right:10px}.toolbar-top{display:flex;width:100%;justify-content:space-between;align-items:center}.toolbar-bottom{display:flex;width:100%;align-items:end}\n"], components: [{ type: i2$e.GanttComponent, selector: "kendo-gantt", inputs: ["aria-roledescription", "role", "taskModelFields", "dependencyModelFields", "activeView", "data", "isSelected", "validateNewDependency", "selectable", "toolbarSettings", "fetchChildren", "hasChildren", "dependencies", "sortable", "sort", "filterable", "filter", "workDayStart", "workDayEnd", "workWeekStart", "workWeekEnd", "navigable", "timelinePaneOptions", "treeListPaneOptions", "taskClass", "rowClass", "isExpanded", "columnsAutoSize", "columnMenu", "columnsReorderable", "columnsResizable", "dragScrollSettings"], outputs: ["selectionChange", "rowExpand", "taskDblClick", "cellDblClick", "cellClose", "taskDelete", "rowCollapse", "remove", "cancel", "save", "taskAdd", "dependencyAdd", "sortChange", "filterChange", "dataStateChange", "treeListPaneCollapsedChange", "timelinePaneCollapsedChange", "timelinePaneSizeChange", "activeViewChange", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "cellClick", "taskClick"], exportAs: ["kendoGantt"] }, { type: i2$e.GanttColumnComponent, selector: "kendo-gantt-column", inputs: ["format", "filter", "filterable", "editor", "editable", "locked", "lockable", "hidden", "media", "style", "headerStyle", "footerStyle", "class", "headerClass", "footerClass"] }, { type: i2$e.ViewSelectorComponent, selector: "kendo-gantt-view-selector", inputs: ["views", "activeView"], outputs: ["activeViewChange"] }, { type: i2$e.TimelineDayViewComponent, selector: "kendo-gantt-timeline-day-view" }, { type: i2$e.TimelineWeekViewComponent, selector: "kendo-gantt-timeline-week-view" }, { type: i2$e.TimelineMonthViewComponent, selector: "kendo-gantt-timeline-month-view" }, { type: i2$e.TimelineYearViewComponent, selector: "kendo-gantt-timeline-year-view" }], directives: [{ type: i2$e.GanttExpandableDirective, selector: "[kendoGanttExpandable]", inputs: ["expandBy"], exportAs: ["kendoGanttExpandable"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$e.ToolbarTemplateDirective, selector: "[kendoGanttToolbarTemplate]", inputs: ["position"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
15209
|
+
ZganttchartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZganttchartComponent, selector: "app-zganttchart", usesInheritance: true, ngImport: i0, template: "<kendo-gantt [style.height.px]=\"500\"\r\n [data]=\"ganttData\"\r\n kendoGanttExpandable\r\n [initiallyExpanded]=\"true\"\r\n [toolbarSettings]=\"{ position: 'both', addTaskTool: 'none' }\"\r\n [activeView]=\"activeView\"\r\n [sortable]=\"true\"\r\n [selectable]=\"selectable\"\r\n [isSelected]=\"isSelected\"\r\n (cellClick)=\"toggleSelection($event)\"\r\n (taskClick)=\"toggleSelection($event)\"\r\n [timelinePaneOptions]=\"{ collapsed: collapsed,\r\n collapsible: collapsible,\r\n size: timelineSize\r\n }\">\r\n <kendo-gantt-column *ngFor=\"let col of columns;\"\r\n [field]=\"col.field\"\r\n [title]=\"col.title\"\r\n [width]=\"col.width\"\r\n [format]=\"col.format\">\r\n </kendo-gantt-column>\r\n <ng-template kendoGanttToolbarTemplate\r\n position=\"both\"\r\n let-position=\"position\">\r\n <div *ngIf=\"position === 'top'\" class=\"toolbar-top\">\r\n <span>{{data.Title}}</span>\r\n <kendo-gantt-view-selector [views]=\"views\"\r\n [(activeView)]=\"activeView\"></kendo-gantt-view-selector>\r\n </div>\r\n <div *ngIf=\"position === 'bottom'\" class=\"toolbar-bottom\">\r\n <span>Total {{totalCount}} records</span>\r\n </div>\r\n </ng-template>\r\n <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>\r\n <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>\r\n <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>\r\n <kendo-gantt-timeline-year-view></kendo-gantt-timeline-year-view>\r\n</kendo-gantt>\r\n", styles: ["label.k-radio-label{display:inline-block;margin-right:10px}.toolbar-top{display:flex;width:100%;justify-content:space-between;align-items:center}.toolbar-bottom{display:flex;width:100%;align-items:end}\n"], components: [{ type: i2$e.GanttComponent, selector: "kendo-gantt", inputs: ["aria-roledescription", "role", "taskModelFields", "dependencyModelFields", "activeView", "data", "isSelected", "validateNewDependency", "selectable", "toolbarSettings", "fetchChildren", "hasChildren", "dependencies", "sortable", "sort", "filterable", "filter", "workDayStart", "workDayEnd", "workWeekStart", "workWeekEnd", "navigable", "timelinePaneOptions", "treeListPaneOptions", "taskClass", "rowClass", "isExpanded", "columnsAutoSize", "columnMenu", "columnsReorderable", "columnsResizable", "dragScrollSettings"], outputs: ["selectionChange", "rowExpand", "taskDblClick", "cellDblClick", "cellClose", "taskDelete", "rowCollapse", "remove", "cancel", "save", "taskAdd", "dependencyAdd", "sortChange", "filterChange", "dataStateChange", "treeListPaneCollapsedChange", "timelinePaneCollapsedChange", "timelinePaneSizeChange", "activeViewChange", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "cellClick", "taskClick"], exportAs: ["kendoGantt"] }, { type: i2$e.GanttColumnComponent, selector: "kendo-gantt-column", inputs: ["format", "filter", "filterable", "editor", "editable", "locked", "lockable", "hidden", "media", "style", "headerStyle", "footerStyle", "class", "headerClass", "footerClass"] }, { type: i2$e.ViewSelectorComponent, selector: "kendo-gantt-view-selector", inputs: ["views", "activeView"], outputs: ["activeViewChange"] }, { type: i2$e.TimelineDayViewComponent, selector: "kendo-gantt-timeline-day-view" }, { type: i2$e.TimelineWeekViewComponent, selector: "kendo-gantt-timeline-week-view" }, { type: i2$e.TimelineMonthViewComponent, selector: "kendo-gantt-timeline-month-view" }, { type: i2$e.TimelineYearViewComponent, selector: "kendo-gantt-timeline-year-view" }], directives: [{ type: i2$e.GanttExpandableDirective, selector: "[kendoGanttExpandable]", inputs: ["expandBy"], exportAs: ["kendoGanttExpandable"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$e.ToolbarTemplateDirective, selector: "[kendoGanttToolbarTemplate]", inputs: ["position"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
15136
15210
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZganttchartComponent, decorators: [{
|
|
15137
15211
|
type: Component,
|
|
15138
|
-
args: [{ selector: 'app-zganttchart', template: "<kendo-gantt [style.height.px]=\"500\"\n [data]=\"ganttData\"\n kendoGanttExpandable\n [initiallyExpanded]=\"true\"\n [toolbarSettings]=\"{ position: 'both', addTaskTool: 'none' }\"\n [activeView]=\"activeView\"\n [sortable]=\"true\"\n [selectable]=\"selectable\"\n [isSelected]=\"isSelected\"\n (cellClick)=\"toggleSelection($event)\"\n (taskClick)=\"toggleSelection($event)\"\n [timelinePaneOptions]=\"{ collapsed: collapsed,\n collapsible: collapsible,\n size: timelineSize\n }\">\n <kendo-gantt-column *ngFor=\"let col of columns;\"\n [field]=\"col.field\"\n [title]=\"col.title\"\n [width]=\"col.width\"\n [format]=\"col.format\">\n </kendo-gantt-column>\n <ng-template kendoGanttToolbarTemplate\n position=\"both\"\n let-position=\"position\">\n <div *ngIf=\"position === 'top'\" class=\"toolbar-top\">\n <span>{{data.Title}}</span>\n <kendo-gantt-view-selector [views]=\"views\"\n [(activeView)]=\"activeView\"></kendo-gantt-view-selector>\n </div>\n <div *ngIf=\"position === 'bottom'\" class=\"toolbar-bottom\">\n <span>Total {{totalCount}} records</span>\n </div>\n </ng-template>\n <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>\n <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>\n <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>\n <kendo-gantt-timeline-year-view></kendo-gantt-timeline-year-view>\n</kendo-gantt>\n", styles: ["label.k-radio-label{display:inline-block;margin-right:10px}.toolbar-top{display:flex;width:100%;justify-content:space-between;align-items:center}.toolbar-bottom{display:flex;width:100%;align-items:end}\n"] }]
|
|
15212
|
+
args: [{ selector: 'app-zganttchart', template: "<kendo-gantt [style.height.px]=\"500\"\r\n [data]=\"ganttData\"\r\n kendoGanttExpandable\r\n [initiallyExpanded]=\"true\"\r\n [toolbarSettings]=\"{ position: 'both', addTaskTool: 'none' }\"\r\n [activeView]=\"activeView\"\r\n [sortable]=\"true\"\r\n [selectable]=\"selectable\"\r\n [isSelected]=\"isSelected\"\r\n (cellClick)=\"toggleSelection($event)\"\r\n (taskClick)=\"toggleSelection($event)\"\r\n [timelinePaneOptions]=\"{ collapsed: collapsed,\r\n collapsible: collapsible,\r\n size: timelineSize\r\n }\">\r\n <kendo-gantt-column *ngFor=\"let col of columns;\"\r\n [field]=\"col.field\"\r\n [title]=\"col.title\"\r\n [width]=\"col.width\"\r\n [format]=\"col.format\">\r\n </kendo-gantt-column>\r\n <ng-template kendoGanttToolbarTemplate\r\n position=\"both\"\r\n let-position=\"position\">\r\n <div *ngIf=\"position === 'top'\" class=\"toolbar-top\">\r\n <span>{{data.Title}}</span>\r\n <kendo-gantt-view-selector [views]=\"views\"\r\n [(activeView)]=\"activeView\"></kendo-gantt-view-selector>\r\n </div>\r\n <div *ngIf=\"position === 'bottom'\" class=\"toolbar-bottom\">\r\n <span>Total {{totalCount}} records</span>\r\n </div>\r\n </ng-template>\r\n <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>\r\n <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>\r\n <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>\r\n <kendo-gantt-timeline-year-view></kendo-gantt-timeline-year-view>\r\n</kendo-gantt>\r\n", styles: ["label.k-radio-label{display:inline-block;margin-right:10px}.toolbar-top{display:flex;width:100%;justify-content:space-between;align-items:center}.toolbar-bottom{display:flex;width:100%;align-items:end}\n"] }]
|
|
15139
15213
|
}], ctorParameters: function () { return [{ type: ZComponentService }]; } });
|
|
15140
15214
|
|
|
15141
15215
|
/********** Angular **********/
|