ngx-histaff-alpha 6.2.7 → 6.2.9
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/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-NiEY3Lwt.mjs → ngx-histaff-alpha-ai-hint-for-table.component-DBElWGVg.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-NiEY3Lwt.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-DBElWGVg.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-DG6DwsTg.mjs → ngx-histaff-alpha-core-form-design.component-_wzTnIee.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-DG6DwsTg.mjs.map → ngx-histaff-alpha-core-form-design.component-_wzTnIee.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-DquamtEW.mjs → ngx-histaff-alpha-core-template-editor.component-fXB6492V.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-DquamtEW.mjs.map → ngx-histaff-alpha-core-template-editor.component-fXB6492V.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-ar9nKhCH.mjs → ngx-histaff-alpha-core-toast-loading.component-DSLcUCbz.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-ar9nKhCH.mjs.map → ngx-histaff-alpha-core-toast-loading.component-DSLcUCbz.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-DMCnXtOv.mjs → ngx-histaff-alpha-core-workflow-consume.component-CSsLmLR2.mjs} +4 -4
- package/fesm2022/ngx-histaff-alpha-core-workflow-consume.component-CSsLmLR2.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-B-OxVg4F.mjs → ngx-histaff-alpha-db-settings.component-BpIse2rU.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-B-OxVg4F.mjs.map → ngx-histaff-alpha-db-settings.component-BpIse2rU.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-BqUnpNJA.mjs → ngx-histaff-alpha-design-wrapper.component-n5ahb0HO.mjs} +7 -7
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-n5ahb0HO.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-CgqbmHd5.mjs → ngx-histaff-alpha-design-wrapper.route-BQUP7aD3.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-CgqbmHd5.mjs.map → ngx-histaff-alpha-design-wrapper.route-BQUP7aD3.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-form-array-props.component-CFhQQ9LF.mjs → ngx-histaff-alpha-form-array-props.component-dnygmuIW.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-form-array-props.component-CFhQQ9LF.mjs.map → ngx-histaff-alpha-form-array-props.component-dnygmuIW.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-DPS-44a3.mjs → ngx-histaff-alpha-hrm-schema.component-Bgcd9oqO.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-DPS-44a3.mjs.map → ngx-histaff-alpha-hrm-schema.component-Bgcd9oqO.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-live-form.component-C_3pE7eQ.mjs → ngx-histaff-alpha-live-form.component-DCmSKu9J.mjs} +2 -2
- package/fesm2022/ngx-histaff-alpha-live-form.component-DCmSKu9J.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-DLhfwWOV.mjs → ngx-histaff-alpha-ngx-histaff-alpha-DsL5Ex6R.mjs} +386 -106
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-DsL5Ex6R.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BBC0agsQ.mjs → ngx-histaff-alpha-simple-chat.component-CORJcSXP.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BBC0agsQ.mjs.map → ngx-histaff-alpha-simple-chat.component-CORJcSXP.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-template-list.component-Dg9i9xfk.mjs → ngx-histaff-alpha-template-list.component-DhHh7uk3.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-template-list.component-Dg9i9xfk.mjs.map → ngx-histaff-alpha-template-list.component-DhHh7uk3.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-CYpHkiXM.mjs → ngx-histaff-alpha-tracker-studio.component-DxwHNKW5.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-CYpHkiXM.mjs.map → ngx-histaff-alpha-tracker-studio.component-DxwHNKW5.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-DPQm1Xzc.mjs → ngx-histaff-alpha-wf-form-assign.component-CTwMGHCL.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-DPQm1Xzc.mjs.map → ngx-histaff-alpha-wf-form-assign.component-CTwMGHCL.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-oEr0_M3b.mjs → ngx-histaff-alpha-wf-global-config.component-C0FY6YVB.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-oEr0_M3b.mjs.map → ngx-histaff-alpha-wf-global-config.component-C0FY6YVB.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-BGc1pFqY.mjs → ngx-histaff-alpha-wf-instance-status.component-BXGA_qii.mjs} +17 -6
- package/fesm2022/ngx-histaff-alpha-wf-instance-status.component-BXGA_qii.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-DvluEd1O.mjs → ngx-histaff-alpha-wf-instance-step-react.component-C1lVDinr.mjs} +13 -4
- package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-C1lVDinr.mjs.map +1 -0
- package/fesm2022/ngx-histaff-alpha.mjs +1 -1
- package/lib/app/interfaces/IFormatedResponse.d.ts +2 -1
- package/lib/app/libraries/core-form-design/core-form-design.component.d.ts +1 -1
- package/lib/app/libraries/core-form-design/core-form-group-editor.component.d.ts +1 -1
- package/lib/app/libraries/core-workflow-builder/core-workflow-list/core-workflow-list.component.d.ts +12 -1
- package/lib/app/libraries/core-workflow-builder/core-workflow.service.d.ts +6 -2
- package/lib/app/services/app.service.d.ts +19 -2
- package/lib/app/services/common-http-request.service.d.ts +3 -0
- package/package.json +2 -2
- package/fesm2022/ngx-histaff-alpha-core-workflow-consume.component-DMCnXtOv.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-BqUnpNJA.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-live-form.component-C_3pE7eQ.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-DLhfwWOV.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-instance-status.component-BGc1pFqY.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-DvluEd1O.mjs.map +0 -1
|
@@ -2,11 +2,11 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Component, Injectable, Pipe, Directive, ViewChild, forwardRef, HostListener, inject, Input, isDevMode, Inject, signal, InjectionToken, computed, effect, Injector, EventEmitter, Output, ViewContainerRef, ApplicationRef, EnvironmentInjector, createComponent, ViewEncapsulation, ChangeDetectorRef, input, ChangeDetectionStrategy, ViewChildren, viewChild, viewChildren, output, TemplateRef, NgModule, DestroyRef, ElementRef, Renderer2 } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/platform-browser';
|
|
4
4
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
5
|
-
import { BehaviorSubject, Subject, filter,
|
|
5
|
+
import { of, BehaviorSubject, Subject, filter, Observable, catchError as catchError$1, distinctUntilChanged, zip, tap as tap$1, throwError, take, switchMap, finalize as finalize$1, map as map$1, interval, concat, buffer, debounceTime, fromEvent, skip, Subscription, takeUntil, combineLatest } from 'rxjs';
|
|
6
6
|
import { api, EnumTranslateKey } from 'alpha-global-constants';
|
|
7
7
|
import * as i1$1 from '@angular/common/http';
|
|
8
8
|
import { HttpHeaders, HttpClient, HttpResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
9
|
-
import { last, map, tap, finalize, first, filter as filter$1, debounceTime as debounceTime$1, distinctUntilChanged as distinctUntilChanged$1, switchMap as switchMap$1 } from 'rxjs/operators';
|
|
9
|
+
import { last, map, catchError, tap, finalize, first, filter as filter$1, debounceTime as debounceTime$1, distinctUntilChanged as distinctUntilChanged$1, switchMap as switchMap$1 } from 'rxjs/operators';
|
|
10
10
|
import * as i3 from '@angular/common';
|
|
11
11
|
import { CommonModule, NgTemplateOutlet, NgStyle, JsonPipe, UpperCasePipe, AsyncPipe, NgClass, LowerCasePipe, NgIf } from '@angular/common';
|
|
12
12
|
import * as i1$4 from '@angular/forms';
|
|
@@ -234,35 +234,80 @@ class CommonHttpRequestService {
|
|
|
234
234
|
this.http = http;
|
|
235
235
|
// this.handleError = httpErrorHandler.createHandleError('CommonHttpRequestService');
|
|
236
236
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
237
|
+
/*
|
|
238
|
+
makePostRequest(name: string, relativeApiEndPoint: string, payload: any, signal: AbortSignal | null = null): Observable<any> {
|
|
239
|
+
let options: any;
|
|
240
|
+
if (!signal) {
|
|
241
|
+
options = {
|
|
242
|
+
headers: headers, observe: 'response', reportProgress: true, withCredentials: true,
|
|
243
243
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
};
|
|
244
|
+
} else {
|
|
245
|
+
options = {
|
|
246
|
+
headers: headers, observe: 'response', reportProgress: true, withCredentials: true, signal
|
|
248
247
|
}
|
|
249
|
-
|
|
250
|
-
|
|
248
|
+
}
|
|
249
|
+
return this.http.post<any>(relativeApiEndPoint, payload, options)
|
|
250
|
+
.pipe(
|
|
251
|
+
last(),
|
|
252
|
+
// catchError(this.handleError(name))
|
|
253
|
+
)
|
|
251
254
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
255
|
+
*/
|
|
256
|
+
makePostRequest(name, relativeApiEndPoint, payload, signal = null) {
|
|
257
|
+
const options = {
|
|
258
|
+
headers,
|
|
259
|
+
observe: 'response',
|
|
260
|
+
reportProgress: true,
|
|
261
|
+
withCredentials: true,
|
|
262
|
+
...(signal ? { signal } : {})
|
|
263
|
+
};
|
|
264
|
+
return this.http.post(relativeApiEndPoint, payload, options).pipe(last(), map(response => ({
|
|
265
|
+
ok: true,
|
|
266
|
+
status: 200,
|
|
267
|
+
body: this.normalizeHttpResponse(response)
|
|
268
|
+
})), catchError(err => of({
|
|
269
|
+
ok: true,
|
|
270
|
+
status: 200,
|
|
271
|
+
body: this.normalizeHttpError(err)
|
|
272
|
+
})));
|
|
273
|
+
}
|
|
274
|
+
/*
|
|
275
|
+
makeGetRequest(name: string, relativeApiEndPoint: string, cacheRequest: boolean = false, signal: AbortSignal | null = null): Observable<any> {
|
|
276
|
+
let options: any;
|
|
277
|
+
if (!signal) {
|
|
278
|
+
options = {
|
|
279
|
+
headers: cacheRequest ? cacheHeaders : headers, observe: 'response', reportProgress: true, withCredentials: true,
|
|
258
280
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
};
|
|
281
|
+
} else {
|
|
282
|
+
options = {
|
|
283
|
+
headers: cacheRequest ? cacheHeaders : headers, observe: 'response', reportProgress: true, withCredentials: true, signal
|
|
263
284
|
}
|
|
264
|
-
|
|
265
|
-
|
|
285
|
+
}
|
|
286
|
+
return this.http.get<any>(relativeApiEndPoint, options)
|
|
287
|
+
.pipe(
|
|
288
|
+
map(response => response),
|
|
289
|
+
last(), // :void return last (completed) message to caller
|
|
290
|
+
// catchError(this.handleError(name))
|
|
291
|
+
)
|
|
292
|
+
}
|
|
293
|
+
*/
|
|
294
|
+
makeGetRequest(name, relativeApiEndPoint, cacheRequest = false, signal = null) {
|
|
295
|
+
const options = {
|
|
296
|
+
headers: cacheRequest ? cacheHeaders : headers,
|
|
297
|
+
observe: 'response',
|
|
298
|
+
reportProgress: true,
|
|
299
|
+
withCredentials: true,
|
|
300
|
+
...(signal ? { signal } : {})
|
|
301
|
+
};
|
|
302
|
+
return this.http.get(relativeApiEndPoint, options).pipe(last(), map(response => ({
|
|
303
|
+
ok: true,
|
|
304
|
+
status: 200,
|
|
305
|
+
body: this.normalizeHttpResponse(response)
|
|
306
|
+
})), catchError(err => of({
|
|
307
|
+
ok: true,
|
|
308
|
+
status: 200,
|
|
309
|
+
body: this.normalizeHttpError(err)
|
|
310
|
+
})));
|
|
266
311
|
}
|
|
267
312
|
downloadFile(apiUrl, id) {
|
|
268
313
|
const options = {
|
|
@@ -326,6 +371,45 @@ class CommonHttpRequestService {
|
|
|
326
371
|
})
|
|
327
372
|
.pipe(map(response => response), last());
|
|
328
373
|
}
|
|
374
|
+
normalizeHttpResponse(response) {
|
|
375
|
+
// Backend already formatted
|
|
376
|
+
if (response?.body?.statusCode && 'innerBody' in response.body) {
|
|
377
|
+
return response.body;
|
|
378
|
+
}
|
|
379
|
+
// Wrap unformatted backend payloads
|
|
380
|
+
return {
|
|
381
|
+
messageCode: 'SUCCESS',
|
|
382
|
+
errorType: 0,
|
|
383
|
+
statusCode: 200,
|
|
384
|
+
innerBody: response?.body ?? response
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
normalizeHttpError(error) {
|
|
388
|
+
const isAbort = error?.name === 'AbortError';
|
|
389
|
+
const message = this.extractErrorMessage(error);
|
|
390
|
+
// 🧠 Your 3 possible design states:
|
|
391
|
+
// - 200 → success
|
|
392
|
+
// - 400 → handled/validation error or cancelled user action
|
|
393
|
+
// - 500 → unhandled server or network failure
|
|
394
|
+
const statusCode = isAbort
|
|
395
|
+
? 400 // interpret cancellation as "user-catchable"
|
|
396
|
+
: 500;
|
|
397
|
+
return {
|
|
398
|
+
messageCode: isAbort ? 'REQUEST_CANCELLED' : 'HTTP_ERROR',
|
|
399
|
+
errorType: isAbort ? 1 : 2,
|
|
400
|
+
statusCode,
|
|
401
|
+
innerBody: { message, details: error }
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
extractErrorMessage(error) {
|
|
405
|
+
if (error?.error?.message)
|
|
406
|
+
return error.error.message;
|
|
407
|
+
if (typeof error === 'string')
|
|
408
|
+
return error;
|
|
409
|
+
if (error?.message)
|
|
410
|
+
return error.message;
|
|
411
|
+
return 'Unexpected error';
|
|
412
|
+
}
|
|
329
413
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CommonHttpRequestService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
330
414
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CommonHttpRequestService, providedIn: 'root' }); }
|
|
331
415
|
}
|
|
@@ -3168,15 +3252,65 @@ class AppService {
|
|
|
3168
3252
|
this.commonHttpRequestService = commonHttpRequestService;
|
|
3169
3253
|
this.clientService = clientService;
|
|
3170
3254
|
}
|
|
3255
|
+
/** 🧩 Cooperative cancellation (AbortController ~ CancellationTokenSource) */
|
|
3256
|
+
createSignal() {
|
|
3257
|
+
if (this.currentController) {
|
|
3258
|
+
this.currentController.abort();
|
|
3259
|
+
}
|
|
3260
|
+
this.currentController = new AbortController();
|
|
3261
|
+
return this.currentController.signal;
|
|
3262
|
+
}
|
|
3263
|
+
/** 🛑 Public method to cancel all pending requests */
|
|
3264
|
+
cancelPendingRequests() {
|
|
3265
|
+
if (this.currentController) {
|
|
3266
|
+
this.currentController.abort();
|
|
3267
|
+
this.currentController = undefined;
|
|
3268
|
+
console.info('🧨 Pending requests aborted.');
|
|
3269
|
+
}
|
|
3270
|
+
}
|
|
3271
|
+
/*
|
|
3272
|
+
get(url: string, cacheRequest: boolean = false, signal: AbortSignal | null = null): Observable<any> {
|
|
3273
|
+
return this.commonHttpRequestService.makeGetRequest('get', url, cacheRequest, signal)
|
|
3274
|
+
}
|
|
3275
|
+
*/
|
|
3171
3276
|
get(url, cacheRequest = false, signal = null) {
|
|
3172
|
-
|
|
3277
|
+
const finalSignal = signal ?? this.createSignal();
|
|
3278
|
+
return this.commonHttpRequestService.makeGetRequest('get', url, cacheRequest, finalSignal).pipe(catchError$1(err => of({
|
|
3279
|
+
ok: true,
|
|
3280
|
+
status: 200,
|
|
3281
|
+
body: this.normalizeError(err)
|
|
3282
|
+
})));
|
|
3173
3283
|
}
|
|
3174
3284
|
getSkipInterceptor(url, cacheRequest = false) {
|
|
3175
3285
|
return this.commonHttpRequestService.makeGetRequestSkipInterceptor('get', url, cacheRequest);
|
|
3176
3286
|
}
|
|
3287
|
+
/*
|
|
3288
|
+
post(url: string, payload: any, signal: AbortSignal | null = null): Observable<any> {
|
|
3289
|
+
console.log("appService post", url)
|
|
3290
|
+
return this.commonHttpRequestService.makePostRequest('post', url, payload)
|
|
3291
|
+
}
|
|
3292
|
+
*/
|
|
3293
|
+
/** ✅ POST with normalized IFormatedResponse wrapper */
|
|
3177
3294
|
post(url, payload, signal = null) {
|
|
3178
|
-
|
|
3179
|
-
return this.commonHttpRequestService.makePostRequest('post', url, payload)
|
|
3295
|
+
const finalSignal = signal ?? this.createSignal();
|
|
3296
|
+
return this.commonHttpRequestService.makePostRequest('post', url, payload, finalSignal).pipe(catchError$1(err => of({
|
|
3297
|
+
ok: true,
|
|
3298
|
+
status: 200,
|
|
3299
|
+
body: this.normalizeError(err)
|
|
3300
|
+
})));
|
|
3301
|
+
}
|
|
3302
|
+
/** 🧱 Error normalization (so frontend always gets consistent shape) */
|
|
3303
|
+
normalizeError(error) {
|
|
3304
|
+
const isAbort = error?.name === 'AbortError';
|
|
3305
|
+
return {
|
|
3306
|
+
messageCode: isAbort ? 'REQUEST_ABORTED' : 'HTTP_ERROR',
|
|
3307
|
+
errorType: isAbort ? 1 : 2,
|
|
3308
|
+
statusCode: isAbort ? 400 : 500,
|
|
3309
|
+
innerBody: {
|
|
3310
|
+
message: this.formatHttpError(error),
|
|
3311
|
+
details: error
|
|
3312
|
+
}
|
|
3313
|
+
};
|
|
3180
3314
|
}
|
|
3181
3315
|
postSkipInterceptor(url, payload) {
|
|
3182
3316
|
console.log("appService post", url);
|
|
@@ -3894,7 +4028,7 @@ class AppInitializationService {
|
|
|
3894
4028
|
this.routingService.readAllFunctionWithAllActions(),
|
|
3895
4029
|
this.routingService.getIgnorePaths(),
|
|
3896
4030
|
this.appService.get(api.SYS_ACTION_READ_ALL)
|
|
3897
|
-
]).pipe(catchError(val => of(`The app caught: ${val}`))).subscribe(responses => {
|
|
4031
|
+
]).pipe(catchError$1(val => of(`The app caught: ${val}`))).subscribe(responses => {
|
|
3898
4032
|
console.log("appInitialize() zip() done");
|
|
3899
4033
|
const x1 = responses[0];
|
|
3900
4034
|
console.log("x1", x1);
|
|
@@ -4330,7 +4464,7 @@ class TokenInterceptor {
|
|
|
4330
4464
|
}),
|
|
4331
4465
|
// But here:
|
|
4332
4466
|
// Operation failed; error is an HttpErrorResponse
|
|
4333
|
-
catchError((response) => {
|
|
4467
|
+
catchError$1((response) => {
|
|
4334
4468
|
console.log("TokenInterceptor Error: ", req, response);
|
|
4335
4469
|
// We don't want to refresh token for some requests
|
|
4336
4470
|
// like login or refresh token itself
|
|
@@ -4396,7 +4530,7 @@ class TokenInterceptor {
|
|
|
4396
4530
|
this.refreshTokenSubject.next(token);
|
|
4397
4531
|
const newReq = this.addAuthenticationToken(req);
|
|
4398
4532
|
return next.handle(newReq);
|
|
4399
|
-
}), catchError((err) => {
|
|
4533
|
+
}), catchError$1((err) => {
|
|
4400
4534
|
this.refreshTokenInProgress = false;
|
|
4401
4535
|
console.log("refreshTokenReq catchError", err);
|
|
4402
4536
|
debugger;
|
|
@@ -4449,7 +4583,7 @@ function tokenInterceptor(req, next) {
|
|
|
4449
4583
|
}),
|
|
4450
4584
|
// But here:
|
|
4451
4585
|
// Operation failed; error is an HttpErrorResponse
|
|
4452
|
-
catchError((response) => {
|
|
4586
|
+
catchError$1((response) => {
|
|
4453
4587
|
console.log("Error: ", response);
|
|
4454
4588
|
// We don't want to refresh token for some requests
|
|
4455
4589
|
// like login or refresh token itself
|
|
@@ -4510,7 +4644,7 @@ function tokenInterceptor(req, next) {
|
|
|
4510
4644
|
authService.refreshTokenSubject.next(token);
|
|
4511
4645
|
const newReq = addAuthenticationToken(req);
|
|
4512
4646
|
return next(newReq);
|
|
4513
|
-
}), catchError((err) => {
|
|
4647
|
+
}), catchError$1((err) => {
|
|
4514
4648
|
authService.refreshTokenInProgress = false;
|
|
4515
4649
|
authService.userLogout().subscribe(x => {
|
|
4516
4650
|
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
@@ -8595,22 +8729,31 @@ class CoreWorkflowService {
|
|
|
8595
8729
|
this.$stepUpdated.set(this.$stepUpdated() + 1); // trigger downstream computations if needed
|
|
8596
8730
|
}
|
|
8597
8731
|
}
|
|
8598
|
-
|
|
8599
|
-
this
|
|
8600
|
-
|
|
8601
|
-
|
|
8732
|
+
refreshObservable(endpoint = '/api/WfWorkflowGroup/GetAllWithWorkflows', searchTerm, currentGroupId = undefined, published = false, signal = null) {
|
|
8733
|
+
return this.appService.post(endpoint, { searchTerm, published });
|
|
8734
|
+
}
|
|
8735
|
+
/*
|
|
8736
|
+
refresh(endpoint: string = '/api/WfWorkflowGroup/GetAllWithWorkflows', searchTerm: string, currentGroupId: number | undefined = undefined, published: boolean = false): void {
|
|
8737
|
+
this.$loading.set(true);
|
|
8738
|
+
this.appService.post(endpoint, { searchTerm, published })
|
|
8739
|
+
.pipe(
|
|
8740
|
+
finalize(() => {
|
|
8602
8741
|
this.$loading.set(false);
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
8608
|
-
|
|
8609
|
-
|
|
8610
|
-
|
|
8742
|
+
})
|
|
8743
|
+
).subscribe(x => {
|
|
8744
|
+
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
8745
|
+
this.$allGroups.set(
|
|
8746
|
+
(x.body?.innerBody as IWfWorkflowGroup[])
|
|
8747
|
+
.map(x => ({ ...x, orderNum: x.orderNum ?? 999 }))
|
|
8748
|
+
.sort((a, b) => a.orderNum - b.orderNum)
|
|
8749
|
+
)
|
|
8750
|
+
if (!!currentGroupId) {
|
|
8751
|
+
this.$currentGroup.set(this.$allGroups().filter(g => g.id === currentGroupId)[0])
|
|
8611
8752
|
}
|
|
8612
|
-
|
|
8753
|
+
}
|
|
8754
|
+
})
|
|
8613
8755
|
}
|
|
8756
|
+
*/
|
|
8614
8757
|
createConditionalBranchStep(branchId) {
|
|
8615
8758
|
console.log('createConditionalBranchStep with branchId:', branchId);
|
|
8616
8759
|
const createBranchCardStep = (branchId, name, isInFallbackBranch = false) => ({
|
|
@@ -8826,7 +8969,7 @@ class CoreWorkflowService {
|
|
|
8826
8969
|
currentFlow.processDefinition = this.$stepsJsonPreview();
|
|
8827
8970
|
}
|
|
8828
8971
|
this.subscriptions.push(this.appService.post('/api/WfWorkflow/SaveDefinition', this.$currentFlow())
|
|
8829
|
-
.pipe(catchError(err => {
|
|
8972
|
+
.pipe(catchError$1(err => {
|
|
8830
8973
|
this.$loading.set(false);
|
|
8831
8974
|
return of(err);
|
|
8832
8975
|
})).subscribe(x => {
|
|
@@ -8845,7 +8988,7 @@ class CoreWorkflowService {
|
|
|
8845
8988
|
}
|
|
8846
8989
|
getById(id) {
|
|
8847
8990
|
this.$loading.set(true);
|
|
8848
|
-
this.subscriptions.push(this.appService.get(`/api/WfWorkflow/GetById?id=${id}`).pipe(catchError(err => {
|
|
8991
|
+
this.subscriptions.push(this.appService.get(`/api/WfWorkflow/GetById?id=${id}`).pipe(catchError$1(err => {
|
|
8849
8992
|
this.$loading.set(false);
|
|
8850
8993
|
return of(err);
|
|
8851
8994
|
})).subscribe(x => {
|
|
@@ -8890,7 +9033,7 @@ class CoreWorkflowService {
|
|
|
8890
9033
|
loadByIdWithAfInstance(workflowId) {
|
|
8891
9034
|
if (workflowId !== '0') {
|
|
8892
9035
|
this.$loading.set(true);
|
|
8893
|
-
this.subscriptions.push(this.appService.get(`/api/WfWorkflow/GetByIdWithAfInstance?id=${workflowId}`).pipe(filter(_ => workflowId !== '0'), catchError(err => {
|
|
9036
|
+
this.subscriptions.push(this.appService.get(`/api/WfWorkflow/GetByIdWithAfInstance?id=${workflowId}`).pipe(filter(_ => workflowId !== '0'), catchError$1(err => {
|
|
8894
9037
|
this.$loading.set(false);
|
|
8895
9038
|
return of(err);
|
|
8896
9039
|
})).subscribe(x => {
|
|
@@ -12961,41 +13104,87 @@ class CoreOrgTreeComponent extends CoreFormControlBaseComponent {
|
|
|
12961
13104
|
this.linnerOrgArray = cloneCopy;
|
|
12962
13105
|
setTimeout(() => this.buildTreeData());
|
|
12963
13106
|
}
|
|
13107
|
+
// buildTreeData(): void {
|
|
13108
|
+
// this.loading = true;
|
|
13109
|
+
// const cloneCopy = JSON.parse(JSON.stringify(this.linnerOrgArray));
|
|
13110
|
+
// if (typeof Worker !== 'undefined') {
|
|
13111
|
+
// // Create a new
|
|
13112
|
+
// console.log("🟢🟢 Worker works");
|
|
13113
|
+
// this.worker = new Worker(liner_to_nested_array_script);
|
|
13114
|
+
// this.worker.addEventListener('message', ({ data }) => {
|
|
13115
|
+
// this.data = data.list;
|
|
13116
|
+
// //this.dataFiltered = JSON.parse(JSON.stringify(data.list));
|
|
13117
|
+
// if (!!this.data && !!this.data?.length) this.data[0].tree$Expanded = true;
|
|
13118
|
+
// this.loading = false;
|
|
13119
|
+
// });
|
|
13120
|
+
// this.worker.postMessage({
|
|
13121
|
+
// list: cloneCopy,
|
|
13122
|
+
// keyField: 'id',
|
|
13123
|
+
// titleField: 'name',
|
|
13124
|
+
// parentField: 'parentId',
|
|
13125
|
+
// activeField: 'active',
|
|
13126
|
+
// //inheritantActiveField: 'inheritantActive',
|
|
13127
|
+
// checkedField: 'checked',
|
|
13128
|
+
// expandedField: 'expand',
|
|
13129
|
+
// });
|
|
13130
|
+
// } else {
|
|
13131
|
+
// // Web workers are not supported in this environment.
|
|
13132
|
+
// // You should add a fallback so that your program still executes correctly.
|
|
13133
|
+
// const status = this.organizationService.status$.value;
|
|
13134
|
+
// this.subscriptions.push(
|
|
13135
|
+
// this.recursiveService
|
|
13136
|
+
// .linerArrayToNestedArray(
|
|
13137
|
+
// cloneCopy,
|
|
13138
|
+
// 'id',
|
|
13139
|
+
// 'name',
|
|
13140
|
+
// 'parentId',
|
|
13141
|
+
// 'active',
|
|
13142
|
+
// 'checked',
|
|
13143
|
+
// 'expand',
|
|
13144
|
+
// //status
|
|
13145
|
+
// )
|
|
13146
|
+
// .subscribe((obj) => {
|
|
13147
|
+
// this.data = obj.list;
|
|
13148
|
+
// //this.dataFiltered = JSON.parse(JSON.stringify(obj.list));
|
|
13149
|
+
// if (!!this.data && !!this.data?.length) this.data[0].tree$Expanded = true;
|
|
13150
|
+
// this.loading = false;
|
|
13151
|
+
// })
|
|
13152
|
+
// );
|
|
13153
|
+
// }
|
|
13154
|
+
// }
|
|
12964
13155
|
buildTreeData() {
|
|
12965
13156
|
this.loading = true;
|
|
12966
13157
|
const cloneCopy = JSON.parse(JSON.stringify(this.linnerOrgArray));
|
|
13158
|
+
// ✅ ADD THIS FILTER
|
|
13159
|
+
const filteredList = !this.showDissolved
|
|
13160
|
+
? cloneCopy.filter(x => x.active === true)
|
|
13161
|
+
: cloneCopy;
|
|
12967
13162
|
if (typeof Worker !== 'undefined') {
|
|
12968
|
-
// Create a new
|
|
12969
|
-
console.log("🟢🟢 Worker works");
|
|
12970
13163
|
this.worker = new Worker(liner_to_nested_array_script);
|
|
12971
13164
|
this.worker.addEventListener('message', ({ data }) => {
|
|
12972
13165
|
this.data = data.list;
|
|
12973
|
-
|
|
12974
|
-
if (!!this.data && !!this.data?.length)
|
|
13166
|
+
if (!!this.data?.length)
|
|
12975
13167
|
this.data[0].tree$Expanded = true;
|
|
12976
13168
|
this.loading = false;
|
|
12977
13169
|
});
|
|
13170
|
+
// ✅ USE filteredList INSTEAD OF cloneCopy
|
|
12978
13171
|
this.worker.postMessage({
|
|
12979
|
-
list:
|
|
13172
|
+
list: filteredList,
|
|
12980
13173
|
keyField: 'id',
|
|
12981
13174
|
titleField: 'name',
|
|
12982
13175
|
parentField: 'parentId',
|
|
12983
13176
|
activeField: 'active',
|
|
12984
|
-
//inheritantActiveField: 'inheritantActive',
|
|
12985
13177
|
checkedField: 'checked',
|
|
12986
13178
|
expandedField: 'expand',
|
|
12987
13179
|
});
|
|
12988
13180
|
}
|
|
12989
13181
|
else {
|
|
12990
|
-
// Web workers are not supported in this environment.
|
|
12991
|
-
// You should add a fallback so that your program still executes correctly.
|
|
12992
|
-
const status = this.organizationService.status$.value;
|
|
12993
13182
|
this.subscriptions.push(this.recursiveService
|
|
12994
|
-
.linerArrayToNestedArray(
|
|
13183
|
+
.linerArrayToNestedArray(filteredList, // ✅ use filteredList
|
|
13184
|
+
'id', 'name', 'parentId', 'active', 'checked', 'expand')
|
|
12995
13185
|
.subscribe((obj) => {
|
|
12996
13186
|
this.data = obj.list;
|
|
12997
|
-
|
|
12998
|
-
if (!!this.data && !!this.data?.length)
|
|
13187
|
+
if (!!this.data?.length)
|
|
12999
13188
|
this.data[0].tree$Expanded = true;
|
|
13000
13189
|
this.loading = false;
|
|
13001
13190
|
}));
|
|
@@ -13178,7 +13367,7 @@ class CoreOrgTreeComponent extends CoreFormControlBaseComponent {
|
|
|
13178
13367
|
multi: true,
|
|
13179
13368
|
useExisting: CoreOrgTreeComponent,
|
|
13180
13369
|
},
|
|
13181
|
-
], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true }, { propertyName: "displayContent", first: true, predicate: ["displayContent"], descendants: true }, { propertyName: "reducedIconWrapper", first: true, predicate: ["reducedIconWrapper"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-org-tree-container\" [class.full-width]=\"!!fullWidthMode\" *ngIf=\"!!data\" [ngStyle]=\"{\r\n position : 'relative',\r\n width: '100%',\r\n minWidth: '310px',\r\n height: height + 'px'\r\n }\">\r\n <div #displayContent class=\"custom-org-tree\">\r\n @if (showSearch) {\r\n <div class=\"core-org-tree-header d-flex-between\">\r\n <div class=\"m5\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"search\" (ngModelChange)=\"onSearchChange($event)\"\r\n [placeholder]=\"searchPlaceholder | translate: lang\" [class.full-width]=\"!!fullWidthMode\">\r\n </div>\r\n </div>\r\n }\r\n <ng-container>\r\n\r\n <div #scrollContainer class=\"scroll-container\" [ngStyle]=\"{\r\n height: height - layoutService.coreOrgTreeTopHeight * (showSearch ? 1 : 0) - layoutService.coreOrgTreeBottomHeight + 'px',\r\n overflow: 'scroll'\r\n }\">\r\n <div class=\"hidden-tool\" (click)=\"onHiddenToolClick($event)\"></div>\r\n <core-loading-surface [loading]=\"loading\" [height]=\"scrollContainerHeight\"></core-loading-surface>\r\n <!-- @for (root of dataFiltered; track root) { -->\r\n @for (root of data; track $index) {\r\n @defer(on viewport(scrollContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root }\"></ng-container>\r\n </ul>\r\n } @placeholder() {\r\n Placeholder...\r\n } @loading() {\r\n Loading...\r\n } @error() {\r\n Error...\r\n }\r\n\r\n }\r\n </div>\r\n <div [ngStyle]=\"{\r\n display: 'block',\r\n position: 'absolute',\r\n bottom: '0px',\r\n left: '0px',\r\n right: '0px',\r\n height: layoutService.corePaginationHeight + 'px',\r\n paddingLeft: layoutService.basicSpacing + 'px',\r\n paddingRight: layoutService.basicSpacing + 'px',\r\n lineHeight: layoutService.corePaginationHeight + 'px',\r\n overflow: 'hidden'\r\n }\">\r\n <div [ngStyle]=\"{\r\n height: layoutService.corePaginationHeight + 'px',\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between'\r\n }\">\r\n <div>\r\n <core-checkbox [(ngModel)]=\"showDissolved\"\r\n (ngModelChange)=\"onCheckIncludeDissolvedChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS_ABBREVIATED'\"\r\n [tooltip]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS'\" tooltipPosition=\"above\"></core-checkbox>\r\n </div>\r\n <div class=\"check-inheritance-wrapper\" *ngIf=\"accessorMode === 'CHECKED'\">\r\n <core-checkbox *ngIf=\"showCheckInheritance\" [(ngModel)]=\"checkInheritance\"\r\n (ngModelChange)=\"onCheckInheritanceChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.CHECK_INHERITANCE'\"></core-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-id=\"context.id\" let-title=\"context.tree$Title\"\r\n let-highlighted=\"context.tree$Highlighted\" let-hasChildren=\"context.tree$HasChildren\"\r\n let-hasActiveChildren=\"context.tree$HasActiveChildren\" let-children=\"context.tree$Children\"\r\n let-expanded=\"context.tree$Expanded\" let-isActive=\"context.isActive\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-protected=\"context.protected\">\r\n\r\n @if ((!showDissolved && !!isActive) || (!!showDissolved)) {\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\">\r\n <!-- (click)=\"accessorMode !== 'CHECKED' ? onObjectClick(context, $event) : $event.preventDefault()\" -->\r\n <span (click)=\"onObjectClick(context, $event)\">\r\n @if ((!!showDissolved && !!hasChildren) || (!showDissolved && !!hasActiveChildren)) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context, $event)\"></i>\r\n }\r\n\r\n @if (accessorMode === 'CHECKED' && !protected) {\r\n <core-checkbox (onClick)=\"onItemCheck(context, $event)\" [inputValue]=\"checked\"\r\n [disabled]=\"disabled\"></core-checkbox>\r\n }\r\n <object [class.active]=\"accessorMode != 'CHECKED' && selectedKey===id.toString()\"\r\n [class.highlighted]=\"highlighted\" [class.dissolved]=\"!isActive\"\r\n [class.protected]=\"protected\" [appTooltip]=\"title\">\r\n {{ title }}\r\n </object>\r\n </span>\r\n @if (!!children.length) {\r\n <ul [class.collapsed]=\" !!!expanded\">\r\n @for (child of children; track $index) {\r\n @if (!!expanded || !!fullRendering) {\r\n\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n\r\n }\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [".core-org-tree-container{--background: var(--color-bg-core-org-tree);--height: 545px;--item-height: 35px;--arrow-font-size: 18px;--ul-padding: 20px;--display: \"block\";--square-color: black;--square-size: 9px;--line-color: \"transparent\";--title-wrapper-max-width: 250px;--active-item-color: #F37540;--size-scrollbar-width: 10px;--line-size: 1px;--reduced-icon-wrapper-height: 50px;--reduced-panel-height: calc(var(--height) - var(--reduced-icon-wrapper-height));--scroll-container-height: calc(var(--height) - var(--size-core-reducer-icon-wrapper-height) - var(--size-pagination-height));color:#000;background-color:var(--color-bg-core-org-tree)!important;height:var(--height);background:var(--background);width:var(--size-core-org-tree-width);transition:width .5s ease-out}.core-org-tree-container .hidden-tool{display:block;position:absolute;background-color:transparent;width:var(--ul-padding);height:var(--ul-padding);top:0;left:0}@keyframes reducedPanelOn{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:rotate(0)}}.core-org-tree-container .custom-org-tree{display:var(--display)}.core-org-tree-container .core-org-tree-header{height:var(--size-core-org-tree-header-height)}.core-org-tree-container .core-org-tree-header input{width:calc(var(--size-core-org-tree-width) - var(--size-layout-block-cell-spacing) * 2 - var(--size-scrollbar-width) + 6px);max-width:100%;transform:translate(14px,8px);border:1px solid #E6EBED}.core-org-tree-container .core-org-tree-header input.full-width{width:calc(var(--size-core-org-tree-width) - var(--size-layout-block-cell-spacing) * 2)}.core-org-tree-container .check-inheritance-wrapper{padding:15px}.core-org-tree-container .m5>input{color:gray}.core-org-tree-container .form-control{border:none}.core-org-tree-container .core-reducer-icon-wrapper{height:var(--size-core-reducer-icon-wrapper-height);padding:var(--size-layout-block-cell-spacing)}.core-org-tree-container .scroll-container{background:var(--background);height:var(--scroll-container-height);overflow:auto;position:relative;width:100%}.core-org-tree-container .scroll-container::-webkit-scrollbar-corner{background-color:transparent}.core-org-tree-container .scroll-container::-webkit-scrollbar{width:8px;height:8px}.core-org-tree-container .scroll-container *{box-sizing:border-box;padding:0;margin:0}.core-org-tree-container .scroll-container ul{display:table;vertical-align:top;padding-left:var(--ul-padding);transition:all .5s ease-out;width:100%}.core-org-tree-container .scroll-container ul>li>span:hover{height:35px;background-color:#fff;border-top-left-radius:20px;border-bottom-left-radius:20px;width:100%}.core-org-tree-container .scroll-container ul>li>span:active{background-color:#f1f1f1;height:35px;border-radius:20px}.core-org-tree-container .scroll-container ul>li>span>object{user-select:none;max-width:var(--title-wrapper-max-width);overflow-x:hidden;text-overflow:ellipsis;-webkit-user-select:none}.core-org-tree-container .scroll-container ul>li>span>object.active{color:var(--active-item-color)}.core-org-tree-container .scroll-container ul .highlighted{color:var(--color-core-org-tree-highlighted);font-weight:700}.core-org-tree-container .scroll-container ul .dissolved{color:#848484;text-decoration:line-through dashed}.core-org-tree-container .scroll-container ul .dissolved.active{color:#c9252b!important}.core-org-tree-container .scroll-container ul>li{display:block;position:relative}.core-org-tree-container .scroll-container ul>li:before{content:\"\";display:block;position:absolute;width:var(--ul-padding);left:calc(var(--ul-padding) * -1);top:calc(var(--item-height) / 2);height:calc(var(--item-height) / 2);border-top:solid var(--line-size) var(--line-color);border-right:none;border-bottom:none;border-left:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul>li>span{display:flex;align-items:center;height:var(--item-height);white-space:nowrap;font-size:13px;padding-left:8px;transform:translate(10px);cursor:pointer}.core-org-tree-container .scroll-container ul>li>span>i{color:var(--square-color);cursor:pointer;font-size:var(--square-size);width:var(--square-size);height:var(--square-size)}.core-org-tree-container .scroll-container ul>li>span>.expand-toggler{font-size:var(--arrow-font-size);width:24px;height:24px;position:absolute;z-index:1;transform:translate(-100%) rotate(0);transition:.5s ease-out;display:flex;align-items:center;justify-content:center}.core-org-tree-container .scroll-container ul>li>span>.check-toggler{margin-left:5px;margin-right:5px}.core-org-tree-container .scroll-container ul>li>ul>li>span:before{content:\"\";display:block;position:absolute;width:var(--ul-padding);left:calc(var(--ul-padding) * -2);top:calc(var(--item-height) / 2);height:var(--line-size);border-top:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul>li.collapsed>span>.expand-toggler{transform:translate(-100%) rotate(-90deg);transition:.5s ease-out}.core-org-tree-container .scroll-container ul>li.collapsed:before{border-left:none}.core-org-tree-container .scroll-container ul>li:not(.collapsed):not(.has-children):before{border-left:none}.core-org-tree-container .scroll-container ul:not(.root):before{content:\"\";display:block;position:absolute;width:var(--line-size);left:calc(var(--ul-padding) * -1);height:calc(100% - var(--item-height) * 1.5);border-left:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul:not(.root)>li:last-child:not(.collapsed).has-children:after{content:\"\";display:block;position:absolute;height:calc(100% - var(--item-height));width:calc(var(--ul-padding) / 2);left:calc(var(--ul-padding) * -2);top:calc(var(--item-height) / 2);border-left:solid var(--line-size) var(--background);z-index:0}.core-org-tree-container .scroll-container ul.collapsed:not(.root){display:none}.core-org-tree-container .collapsed>li:before{display:none!important}.core-org-tree-container.full-width .scroll-container{width:auto}.core-org-tree-container.reduced{width:50px;padding:0;transition:width .5s ease-out}.core-org-tree-container.reduced .scroll-container{overflow:hidden}.core-org-tree-container.reduced .scroll-container>ul.root{display:none}.core-org-tree-container.reduced .scroll-container>.reduced-panel{color:var(--active-item-color);width:50px;height:var(--reduced-panel-height);writing-mode:vertical-rl;text-orientation:mixed;display:flex;align-items:center;justify-content:center;font-weight:700;animation:reducedPanelOn .5s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreLoadingSurfaceComponent, selector: "core-loading-surface", inputs: ["loading", "height"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }], deferBlockDependencies: [() => [i3.NgTemplateOutlet]] }); }
|
|
13370
|
+
], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true }, { propertyName: "displayContent", first: true, predicate: ["displayContent"], descendants: true }, { propertyName: "reducedIconWrapper", first: true, predicate: ["reducedIconWrapper"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-org-tree-container\" [class.full-width]=\"!!fullWidthMode\" *ngIf=\"!!data\" [ngStyle]=\"{\r\n position : 'relative',\r\n width: '100%',\r\n minWidth: '310px',\r\n height: height + 'px'\r\n }\">\r\n <div #displayContent class=\"custom-org-tree\">\r\n @if (showSearch) {\r\n <div class=\"core-org-tree-header d-flex-between\">\r\n <div class=\"m5\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"search\" (ngModelChange)=\"onSearchChange($event)\"\r\n [placeholder]=\"searchPlaceholder | translate: lang\" [class.full-width]=\"!!fullWidthMode\">\r\n </div>\r\n </div>\r\n }\r\n <ng-container>\r\n\r\n <div #scrollContainer class=\"scroll-container\" [ngStyle]=\"{\r\n height: height - layoutService.coreOrgTreeTopHeight * (showSearch ? 1 : 0) - layoutService.coreOrgTreeBottomHeight + 'px',\r\n overflow: 'scroll'\r\n }\">\r\n <div class=\"hidden-tool\" (click)=\"onHiddenToolClick($event)\"></div>\r\n <core-loading-surface [loading]=\"loading\" [height]=\"scrollContainerHeight\"></core-loading-surface>\r\n <!-- @for (root of dataFiltered; track root) { -->\r\n @for (root of data; track $index) {\r\n @defer(on viewport(scrollContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root }\"></ng-container>\r\n </ul>\r\n } @placeholder() {\r\n Placeholder...\r\n } @loading() {\r\n Loading...\r\n } @error() {\r\n Error...\r\n }\r\n\r\n }\r\n </div>\r\n <div [ngStyle]=\"{\r\n display: 'block',\r\n position: 'absolute',\r\n bottom: '0px',\r\n left: '0px',\r\n right: '0px',\r\n height: layoutService.corePaginationHeight + 'px',\r\n paddingLeft: layoutService.basicSpacing + 'px',\r\n paddingRight: layoutService.basicSpacing + 'px',\r\n lineHeight: layoutService.corePaginationHeight + 'px',\r\n overflow: 'hidden'\r\n }\">\r\n <div [ngStyle]=\"{\r\n height: layoutService.corePaginationHeight + 'px',\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between'\r\n }\">\r\n <div>\r\n <core-checkbox [(ngModel)]=\"showDissolved\"\r\n (ngModelChange)=\"onCheckIncludeDissolvedChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS_ABBREVIATED'\"\r\n [tooltip]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS'\" tooltipPosition=\"above\"></core-checkbox>\r\n </div>\r\n @if (accessorMode === 'CHECKED') {\r\n <div class=\"check-inheritance-wrapper\">\r\n @if (showCheckInheritance) {\r\n <core-checkbox [(ngModel)]=\"checkInheritance\"\r\n (ngModelChange)=\"onCheckInheritanceChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.CHECK_INHERITANCE'\"></core-checkbox>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-id=\"context.id\" let-title=\"context.tree$Title\"\r\n let-highlighted=\"context.tree$Highlighted\" let-hasChildren=\"context.tree$HasChildren\"\r\n let-hasActiveChildren=\"context.tree$HasActiveChildren\" let-children=\"context.tree$Children\"\r\n let-expanded=\"context.tree$Expanded\" let-isActive=\"context.isActive\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-protected=\"context.protected\">\r\n\r\n @if ((!showDissolved && !!isActive) || (!!showDissolved)) {\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\">\r\n <!-- (click)=\"accessorMode !== 'CHECKED' ? onObjectClick(context, $event) : $event.preventDefault()\" -->\r\n <span (click)=\"onObjectClick(context, $event)\">\r\n @if ((!!showDissolved && !!hasChildren) || (!showDissolved && !!hasActiveChildren)) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context, $event)\"></i>\r\n }\r\n\r\n @if (accessorMode === 'CHECKED' && !protected) {\r\n <core-checkbox (onClick)=\"onItemCheck(context, $event)\" [inputValue]=\"checked\"\r\n [disabled]=\"disabled\"></core-checkbox>\r\n }\r\n <object [class.active]=\"accessorMode != 'CHECKED' && selectedKey===id.toString()\"\r\n [class.highlighted]=\"highlighted\" [class.dissolved]=\"!isActive\"\r\n [class.protected]=\"protected\" [appTooltip]=\"title\">\r\n {{ title }}\r\n </object>\r\n </span>\r\n @if (!!children.length) {\r\n <ul [class.collapsed]=\" !!!expanded\">\r\n @for (child of children; track $index) {\r\n @if (!!expanded || !!fullRendering) {\r\n\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n\r\n }\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [".core-org-tree-container{--background: var(--color-bg-core-org-tree);--height: 545px;--item-height: 35px;--arrow-font-size: 18px;--ul-padding: 20px;--display: \"block\";--square-color: black;--square-size: 9px;--line-color: \"transparent\";--title-wrapper-max-width: 250px;--active-item-color: #F37540;--size-scrollbar-width: 10px;--line-size: 1px;--reduced-icon-wrapper-height: 50px;--reduced-panel-height: calc(var(--height) - var(--reduced-icon-wrapper-height));--scroll-container-height: calc(var(--height) - var(--size-core-reducer-icon-wrapper-height) - var(--size-pagination-height));color:#000;background-color:var(--color-bg-core-org-tree)!important;height:var(--height);background:var(--background);width:var(--size-core-org-tree-width);transition:width .5s ease-out}.core-org-tree-container .hidden-tool{display:block;position:absolute;background-color:transparent;width:var(--ul-padding);height:var(--ul-padding);top:0;left:0}@keyframes reducedPanelOn{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:rotate(0)}}.core-org-tree-container .custom-org-tree{display:var(--display)}.core-org-tree-container .core-org-tree-header{height:var(--size-core-org-tree-header-height)}.core-org-tree-container .core-org-tree-header input{width:calc(var(--size-core-org-tree-width) - var(--size-layout-block-cell-spacing) * 2 - var(--size-scrollbar-width) + 6px);max-width:100%;transform:translate(14px,8px);border:1px solid #E6EBED}.core-org-tree-container .core-org-tree-header input.full-width{width:calc(var(--size-core-org-tree-width) - var(--size-layout-block-cell-spacing) * 2)}.core-org-tree-container .check-inheritance-wrapper{padding:15px}.core-org-tree-container .m5>input{color:gray}.core-org-tree-container .form-control{border:none}.core-org-tree-container .core-reducer-icon-wrapper{height:var(--size-core-reducer-icon-wrapper-height);padding:var(--size-layout-block-cell-spacing)}.core-org-tree-container .scroll-container{background:var(--background);height:var(--scroll-container-height);overflow:auto;position:relative;width:100%}.core-org-tree-container .scroll-container::-webkit-scrollbar-corner{background-color:transparent}.core-org-tree-container .scroll-container::-webkit-scrollbar{width:8px;height:8px}.core-org-tree-container .scroll-container *{box-sizing:border-box;padding:0;margin:0}.core-org-tree-container .scroll-container ul{display:table;vertical-align:top;padding-left:var(--ul-padding);transition:all .5s ease-out;width:100%}.core-org-tree-container .scroll-container ul>li>span:hover{height:35px;background-color:#fff;border-top-left-radius:20px;border-bottom-left-radius:20px;width:100%}.core-org-tree-container .scroll-container ul>li>span:active{background-color:#f1f1f1;height:35px;border-radius:20px}.core-org-tree-container .scroll-container ul>li>span>object{user-select:none;max-width:var(--title-wrapper-max-width);overflow-x:hidden;text-overflow:ellipsis;-webkit-user-select:none}.core-org-tree-container .scroll-container ul>li>span>object.active{color:var(--active-item-color)}.core-org-tree-container .scroll-container ul .highlighted{color:var(--color-core-org-tree-highlighted);font-weight:700}.core-org-tree-container .scroll-container ul .dissolved{color:#848484;text-decoration:line-through dashed}.core-org-tree-container .scroll-container ul .dissolved.active{color:#c9252b!important}.core-org-tree-container .scroll-container ul>li{display:block;position:relative}.core-org-tree-container .scroll-container ul>li:before{content:\"\";display:block;position:absolute;width:var(--ul-padding);left:calc(var(--ul-padding) * -1);top:calc(var(--item-height) / 2);height:calc(var(--item-height) / 2);border-top:solid var(--line-size) var(--line-color);border-right:none;border-bottom:none;border-left:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul>li>span{display:flex;align-items:center;height:var(--item-height);white-space:nowrap;font-size:13px;padding-left:8px;transform:translate(10px);cursor:pointer}.core-org-tree-container .scroll-container ul>li>span>i{color:var(--square-color);cursor:pointer;font-size:var(--square-size);width:var(--square-size);height:var(--square-size)}.core-org-tree-container .scroll-container ul>li>span>.expand-toggler{font-size:var(--arrow-font-size);width:24px;height:24px;position:absolute;z-index:1;transform:translate(-100%) rotate(0);transition:.5s ease-out;display:flex;align-items:center;justify-content:center}.core-org-tree-container .scroll-container ul>li>span>.check-toggler{margin-left:5px;margin-right:5px}.core-org-tree-container .scroll-container ul>li>ul>li>span:before{content:\"\";display:block;position:absolute;width:var(--ul-padding);left:calc(var(--ul-padding) * -2);top:calc(var(--item-height) / 2);height:var(--line-size);border-top:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul>li.collapsed>span>.expand-toggler{transform:translate(-100%) rotate(-90deg);transition:.5s ease-out}.core-org-tree-container .scroll-container ul>li.collapsed:before{border-left:none}.core-org-tree-container .scroll-container ul>li:not(.collapsed):not(.has-children):before{border-left:none}.core-org-tree-container .scroll-container ul:not(.root):before{content:\"\";display:block;position:absolute;width:var(--line-size);left:calc(var(--ul-padding) * -1);height:calc(100% - var(--item-height) * 1.5);border-left:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul:not(.root)>li:last-child:not(.collapsed).has-children:after{content:\"\";display:block;position:absolute;height:calc(100% - var(--item-height));width:calc(var(--ul-padding) / 2);left:calc(var(--ul-padding) * -2);top:calc(var(--item-height) / 2);border-left:solid var(--line-size) var(--background);z-index:0}.core-org-tree-container .scroll-container ul.collapsed:not(.root){display:none}.core-org-tree-container .collapsed>li:before{display:none!important}.core-org-tree-container.full-width .scroll-container{width:auto}.core-org-tree-container.reduced{width:50px;padding:0;transition:width .5s ease-out}.core-org-tree-container.reduced .scroll-container{overflow:hidden}.core-org-tree-container.reduced .scroll-container>ul.root{display:none}.core-org-tree-container.reduced .scroll-container>.reduced-panel{color:var(--active-item-color);width:50px;height:var(--reduced-panel-height);writing-mode:vertical-rl;text-orientation:mixed;display:flex;align-items:center;justify-content:center;font-weight:700;animation:reducedPanelOn .5s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreLoadingSurfaceComponent, selector: "core-loading-surface", inputs: ["loading", "height"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }], deferBlockDependencies: [() => [i3.NgTemplateOutlet]] }); }
|
|
13182
13371
|
}
|
|
13183
13372
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreOrgTreeComponent, decorators: [{
|
|
13184
13373
|
type: Component,
|
|
@@ -13196,7 +13385,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
13196
13385
|
multi: true,
|
|
13197
13386
|
useExisting: CoreOrgTreeComponent,
|
|
13198
13387
|
},
|
|
13199
|
-
], template: "<div #container class=\"core-org-tree-container\" [class.full-width]=\"!!fullWidthMode\" *ngIf=\"!!data\" [ngStyle]=\"{\r\n position : 'relative',\r\n width: '100%',\r\n minWidth: '310px',\r\n height: height + 'px'\r\n }\">\r\n <div #displayContent class=\"custom-org-tree\">\r\n @if (showSearch) {\r\n <div class=\"core-org-tree-header d-flex-between\">\r\n <div class=\"m5\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"search\" (ngModelChange)=\"onSearchChange($event)\"\r\n [placeholder]=\"searchPlaceholder | translate: lang\" [class.full-width]=\"!!fullWidthMode\">\r\n </div>\r\n </div>\r\n }\r\n <ng-container>\r\n\r\n <div #scrollContainer class=\"scroll-container\" [ngStyle]=\"{\r\n height: height - layoutService.coreOrgTreeTopHeight * (showSearch ? 1 : 0) - layoutService.coreOrgTreeBottomHeight + 'px',\r\n overflow: 'scroll'\r\n }\">\r\n <div class=\"hidden-tool\" (click)=\"onHiddenToolClick($event)\"></div>\r\n <core-loading-surface [loading]=\"loading\" [height]=\"scrollContainerHeight\"></core-loading-surface>\r\n <!-- @for (root of dataFiltered; track root) { -->\r\n @for (root of data; track $index) {\r\n @defer(on viewport(scrollContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root }\"></ng-container>\r\n </ul>\r\n } @placeholder() {\r\n Placeholder...\r\n } @loading() {\r\n Loading...\r\n } @error() {\r\n Error...\r\n }\r\n\r\n }\r\n </div>\r\n <div [ngStyle]=\"{\r\n display: 'block',\r\n position: 'absolute',\r\n bottom: '0px',\r\n left: '0px',\r\n right: '0px',\r\n height: layoutService.corePaginationHeight + 'px',\r\n paddingLeft: layoutService.basicSpacing + 'px',\r\n paddingRight: layoutService.basicSpacing + 'px',\r\n lineHeight: layoutService.corePaginationHeight + 'px',\r\n overflow: 'hidden'\r\n }\">\r\n <div [ngStyle]=\"{\r\n height: layoutService.corePaginationHeight + 'px',\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between'\r\n }\">\r\n <div>\r\n <core-checkbox [(ngModel)]=\"showDissolved\"\r\n (ngModelChange)=\"onCheckIncludeDissolvedChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS_ABBREVIATED'\"\r\n [tooltip]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS'\" tooltipPosition=\"above\"></core-checkbox>\r\n </div>\r\n <div class=\"check-inheritance-wrapper\" *ngIf=\"accessorMode === 'CHECKED'\">\r\n <core-checkbox *ngIf=\"showCheckInheritance\" [(ngModel)]=\"checkInheritance\"\r\n (ngModelChange)=\"onCheckInheritanceChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.CHECK_INHERITANCE'\"></core-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-id=\"context.id\" let-title=\"context.tree$Title\"\r\n let-highlighted=\"context.tree$Highlighted\" let-hasChildren=\"context.tree$HasChildren\"\r\n let-hasActiveChildren=\"context.tree$HasActiveChildren\" let-children=\"context.tree$Children\"\r\n let-expanded=\"context.tree$Expanded\" let-isActive=\"context.isActive\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-protected=\"context.protected\">\r\n\r\n @if ((!showDissolved && !!isActive) || (!!showDissolved)) {\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\">\r\n <!-- (click)=\"accessorMode !== 'CHECKED' ? onObjectClick(context, $event) : $event.preventDefault()\" -->\r\n <span (click)=\"onObjectClick(context, $event)\">\r\n @if ((!!showDissolved && !!hasChildren) || (!showDissolved && !!hasActiveChildren)) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context, $event)\"></i>\r\n }\r\n\r\n @if (accessorMode === 'CHECKED' && !protected) {\r\n <core-checkbox (onClick)=\"onItemCheck(context, $event)\" [inputValue]=\"checked\"\r\n [disabled]=\"disabled\"></core-checkbox>\r\n }\r\n <object [class.active]=\"accessorMode != 'CHECKED' && selectedKey===id.toString()\"\r\n [class.highlighted]=\"highlighted\" [class.dissolved]=\"!isActive\"\r\n [class.protected]=\"protected\" [appTooltip]=\"title\">\r\n {{ title }}\r\n </object>\r\n </span>\r\n @if (!!children.length) {\r\n <ul [class.collapsed]=\" !!!expanded\">\r\n @for (child of children; track $index) {\r\n @if (!!expanded || !!fullRendering) {\r\n\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n\r\n }\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [".core-org-tree-container{--background: var(--color-bg-core-org-tree);--height: 545px;--item-height: 35px;--arrow-font-size: 18px;--ul-padding: 20px;--display: \"block\";--square-color: black;--square-size: 9px;--line-color: \"transparent\";--title-wrapper-max-width: 250px;--active-item-color: #F37540;--size-scrollbar-width: 10px;--line-size: 1px;--reduced-icon-wrapper-height: 50px;--reduced-panel-height: calc(var(--height) - var(--reduced-icon-wrapper-height));--scroll-container-height: calc(var(--height) - var(--size-core-reducer-icon-wrapper-height) - var(--size-pagination-height));color:#000;background-color:var(--color-bg-core-org-tree)!important;height:var(--height);background:var(--background);width:var(--size-core-org-tree-width);transition:width .5s ease-out}.core-org-tree-container .hidden-tool{display:block;position:absolute;background-color:transparent;width:var(--ul-padding);height:var(--ul-padding);top:0;left:0}@keyframes reducedPanelOn{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:rotate(0)}}.core-org-tree-container .custom-org-tree{display:var(--display)}.core-org-tree-container .core-org-tree-header{height:var(--size-core-org-tree-header-height)}.core-org-tree-container .core-org-tree-header input{width:calc(var(--size-core-org-tree-width) - var(--size-layout-block-cell-spacing) * 2 - var(--size-scrollbar-width) + 6px);max-width:100%;transform:translate(14px,8px);border:1px solid #E6EBED}.core-org-tree-container .core-org-tree-header input.full-width{width:calc(var(--size-core-org-tree-width) - var(--size-layout-block-cell-spacing) * 2)}.core-org-tree-container .check-inheritance-wrapper{padding:15px}.core-org-tree-container .m5>input{color:gray}.core-org-tree-container .form-control{border:none}.core-org-tree-container .core-reducer-icon-wrapper{height:var(--size-core-reducer-icon-wrapper-height);padding:var(--size-layout-block-cell-spacing)}.core-org-tree-container .scroll-container{background:var(--background);height:var(--scroll-container-height);overflow:auto;position:relative;width:100%}.core-org-tree-container .scroll-container::-webkit-scrollbar-corner{background-color:transparent}.core-org-tree-container .scroll-container::-webkit-scrollbar{width:8px;height:8px}.core-org-tree-container .scroll-container *{box-sizing:border-box;padding:0;margin:0}.core-org-tree-container .scroll-container ul{display:table;vertical-align:top;padding-left:var(--ul-padding);transition:all .5s ease-out;width:100%}.core-org-tree-container .scroll-container ul>li>span:hover{height:35px;background-color:#fff;border-top-left-radius:20px;border-bottom-left-radius:20px;width:100%}.core-org-tree-container .scroll-container ul>li>span:active{background-color:#f1f1f1;height:35px;border-radius:20px}.core-org-tree-container .scroll-container ul>li>span>object{user-select:none;max-width:var(--title-wrapper-max-width);overflow-x:hidden;text-overflow:ellipsis;-webkit-user-select:none}.core-org-tree-container .scroll-container ul>li>span>object.active{color:var(--active-item-color)}.core-org-tree-container .scroll-container ul .highlighted{color:var(--color-core-org-tree-highlighted);font-weight:700}.core-org-tree-container .scroll-container ul .dissolved{color:#848484;text-decoration:line-through dashed}.core-org-tree-container .scroll-container ul .dissolved.active{color:#c9252b!important}.core-org-tree-container .scroll-container ul>li{display:block;position:relative}.core-org-tree-container .scroll-container ul>li:before{content:\"\";display:block;position:absolute;width:var(--ul-padding);left:calc(var(--ul-padding) * -1);top:calc(var(--item-height) / 2);height:calc(var(--item-height) / 2);border-top:solid var(--line-size) var(--line-color);border-right:none;border-bottom:none;border-left:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul>li>span{display:flex;align-items:center;height:var(--item-height);white-space:nowrap;font-size:13px;padding-left:8px;transform:translate(10px);cursor:pointer}.core-org-tree-container .scroll-container ul>li>span>i{color:var(--square-color);cursor:pointer;font-size:var(--square-size);width:var(--square-size);height:var(--square-size)}.core-org-tree-container .scroll-container ul>li>span>.expand-toggler{font-size:var(--arrow-font-size);width:24px;height:24px;position:absolute;z-index:1;transform:translate(-100%) rotate(0);transition:.5s ease-out;display:flex;align-items:center;justify-content:center}.core-org-tree-container .scroll-container ul>li>span>.check-toggler{margin-left:5px;margin-right:5px}.core-org-tree-container .scroll-container ul>li>ul>li>span:before{content:\"\";display:block;position:absolute;width:var(--ul-padding);left:calc(var(--ul-padding) * -2);top:calc(var(--item-height) / 2);height:var(--line-size);border-top:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul>li.collapsed>span>.expand-toggler{transform:translate(-100%) rotate(-90deg);transition:.5s ease-out}.core-org-tree-container .scroll-container ul>li.collapsed:before{border-left:none}.core-org-tree-container .scroll-container ul>li:not(.collapsed):not(.has-children):before{border-left:none}.core-org-tree-container .scroll-container ul:not(.root):before{content:\"\";display:block;position:absolute;width:var(--line-size);left:calc(var(--ul-padding) * -1);height:calc(100% - var(--item-height) * 1.5);border-left:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul:not(.root)>li:last-child:not(.collapsed).has-children:after{content:\"\";display:block;position:absolute;height:calc(100% - var(--item-height));width:calc(var(--ul-padding) / 2);left:calc(var(--ul-padding) * -2);top:calc(var(--item-height) / 2);border-left:solid var(--line-size) var(--background);z-index:0}.core-org-tree-container .scroll-container ul.collapsed:not(.root){display:none}.core-org-tree-container .collapsed>li:before{display:none!important}.core-org-tree-container.full-width .scroll-container{width:auto}.core-org-tree-container.reduced{width:50px;padding:0;transition:width .5s ease-out}.core-org-tree-container.reduced .scroll-container{overflow:hidden}.core-org-tree-container.reduced .scroll-container>ul.root{display:none}.core-org-tree-container.reduced .scroll-container>.reduced-panel{color:var(--active-item-color);width:50px;height:var(--reduced-panel-height);writing-mode:vertical-rl;text-orientation:mixed;display:flex;align-items:center;justify-content:center;font-weight:700;animation:reducedPanelOn .5s ease-out}\n"] }]
|
|
13388
|
+
], template: "<div #container class=\"core-org-tree-container\" [class.full-width]=\"!!fullWidthMode\" *ngIf=\"!!data\" [ngStyle]=\"{\r\n position : 'relative',\r\n width: '100%',\r\n minWidth: '310px',\r\n height: height + 'px'\r\n }\">\r\n <div #displayContent class=\"custom-org-tree\">\r\n @if (showSearch) {\r\n <div class=\"core-org-tree-header d-flex-between\">\r\n <div class=\"m5\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"search\" (ngModelChange)=\"onSearchChange($event)\"\r\n [placeholder]=\"searchPlaceholder | translate: lang\" [class.full-width]=\"!!fullWidthMode\">\r\n </div>\r\n </div>\r\n }\r\n <ng-container>\r\n\r\n <div #scrollContainer class=\"scroll-container\" [ngStyle]=\"{\r\n height: height - layoutService.coreOrgTreeTopHeight * (showSearch ? 1 : 0) - layoutService.coreOrgTreeBottomHeight + 'px',\r\n overflow: 'scroll'\r\n }\">\r\n <div class=\"hidden-tool\" (click)=\"onHiddenToolClick($event)\"></div>\r\n <core-loading-surface [loading]=\"loading\" [height]=\"scrollContainerHeight\"></core-loading-surface>\r\n <!-- @for (root of dataFiltered; track root) { -->\r\n @for (root of data; track $index) {\r\n @defer(on viewport(scrollContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root }\"></ng-container>\r\n </ul>\r\n } @placeholder() {\r\n Placeholder...\r\n } @loading() {\r\n Loading...\r\n } @error() {\r\n Error...\r\n }\r\n\r\n }\r\n </div>\r\n <div [ngStyle]=\"{\r\n display: 'block',\r\n position: 'absolute',\r\n bottom: '0px',\r\n left: '0px',\r\n right: '0px',\r\n height: layoutService.corePaginationHeight + 'px',\r\n paddingLeft: layoutService.basicSpacing + 'px',\r\n paddingRight: layoutService.basicSpacing + 'px',\r\n lineHeight: layoutService.corePaginationHeight + 'px',\r\n overflow: 'hidden'\r\n }\">\r\n <div [ngStyle]=\"{\r\n height: layoutService.corePaginationHeight + 'px',\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between'\r\n }\">\r\n <div>\r\n <core-checkbox [(ngModel)]=\"showDissolved\"\r\n (ngModelChange)=\"onCheckIncludeDissolvedChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS_ABBREVIATED'\"\r\n [tooltip]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS'\" tooltipPosition=\"above\"></core-checkbox>\r\n </div>\r\n @if (accessorMode === 'CHECKED') {\r\n <div class=\"check-inheritance-wrapper\">\r\n @if (showCheckInheritance) {\r\n <core-checkbox [(ngModel)]=\"checkInheritance\"\r\n (ngModelChange)=\"onCheckInheritanceChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.CHECK_INHERITANCE'\"></core-checkbox>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-id=\"context.id\" let-title=\"context.tree$Title\"\r\n let-highlighted=\"context.tree$Highlighted\" let-hasChildren=\"context.tree$HasChildren\"\r\n let-hasActiveChildren=\"context.tree$HasActiveChildren\" let-children=\"context.tree$Children\"\r\n let-expanded=\"context.tree$Expanded\" let-isActive=\"context.isActive\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-protected=\"context.protected\">\r\n\r\n @if ((!showDissolved && !!isActive) || (!!showDissolved)) {\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\">\r\n <!-- (click)=\"accessorMode !== 'CHECKED' ? onObjectClick(context, $event) : $event.preventDefault()\" -->\r\n <span (click)=\"onObjectClick(context, $event)\">\r\n @if ((!!showDissolved && !!hasChildren) || (!showDissolved && !!hasActiveChildren)) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context, $event)\"></i>\r\n }\r\n\r\n @if (accessorMode === 'CHECKED' && !protected) {\r\n <core-checkbox (onClick)=\"onItemCheck(context, $event)\" [inputValue]=\"checked\"\r\n [disabled]=\"disabled\"></core-checkbox>\r\n }\r\n <object [class.active]=\"accessorMode != 'CHECKED' && selectedKey===id.toString()\"\r\n [class.highlighted]=\"highlighted\" [class.dissolved]=\"!isActive\"\r\n [class.protected]=\"protected\" [appTooltip]=\"title\">\r\n {{ title }}\r\n </object>\r\n </span>\r\n @if (!!children.length) {\r\n <ul [class.collapsed]=\" !!!expanded\">\r\n @for (child of children; track $index) {\r\n @if (!!expanded || !!fullRendering) {\r\n\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n\r\n }\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [".core-org-tree-container{--background: var(--color-bg-core-org-tree);--height: 545px;--item-height: 35px;--arrow-font-size: 18px;--ul-padding: 20px;--display: \"block\";--square-color: black;--square-size: 9px;--line-color: \"transparent\";--title-wrapper-max-width: 250px;--active-item-color: #F37540;--size-scrollbar-width: 10px;--line-size: 1px;--reduced-icon-wrapper-height: 50px;--reduced-panel-height: calc(var(--height) - var(--reduced-icon-wrapper-height));--scroll-container-height: calc(var(--height) - var(--size-core-reducer-icon-wrapper-height) - var(--size-pagination-height));color:#000;background-color:var(--color-bg-core-org-tree)!important;height:var(--height);background:var(--background);width:var(--size-core-org-tree-width);transition:width .5s ease-out}.core-org-tree-container .hidden-tool{display:block;position:absolute;background-color:transparent;width:var(--ul-padding);height:var(--ul-padding);top:0;left:0}@keyframes reducedPanelOn{0%{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:rotate(0)}}.core-org-tree-container .custom-org-tree{display:var(--display)}.core-org-tree-container .core-org-tree-header{height:var(--size-core-org-tree-header-height)}.core-org-tree-container .core-org-tree-header input{width:calc(var(--size-core-org-tree-width) - var(--size-layout-block-cell-spacing) * 2 - var(--size-scrollbar-width) + 6px);max-width:100%;transform:translate(14px,8px);border:1px solid #E6EBED}.core-org-tree-container .core-org-tree-header input.full-width{width:calc(var(--size-core-org-tree-width) - var(--size-layout-block-cell-spacing) * 2)}.core-org-tree-container .check-inheritance-wrapper{padding:15px}.core-org-tree-container .m5>input{color:gray}.core-org-tree-container .form-control{border:none}.core-org-tree-container .core-reducer-icon-wrapper{height:var(--size-core-reducer-icon-wrapper-height);padding:var(--size-layout-block-cell-spacing)}.core-org-tree-container .scroll-container{background:var(--background);height:var(--scroll-container-height);overflow:auto;position:relative;width:100%}.core-org-tree-container .scroll-container::-webkit-scrollbar-corner{background-color:transparent}.core-org-tree-container .scroll-container::-webkit-scrollbar{width:8px;height:8px}.core-org-tree-container .scroll-container *{box-sizing:border-box;padding:0;margin:0}.core-org-tree-container .scroll-container ul{display:table;vertical-align:top;padding-left:var(--ul-padding);transition:all .5s ease-out;width:100%}.core-org-tree-container .scroll-container ul>li>span:hover{height:35px;background-color:#fff;border-top-left-radius:20px;border-bottom-left-radius:20px;width:100%}.core-org-tree-container .scroll-container ul>li>span:active{background-color:#f1f1f1;height:35px;border-radius:20px}.core-org-tree-container .scroll-container ul>li>span>object{user-select:none;max-width:var(--title-wrapper-max-width);overflow-x:hidden;text-overflow:ellipsis;-webkit-user-select:none}.core-org-tree-container .scroll-container ul>li>span>object.active{color:var(--active-item-color)}.core-org-tree-container .scroll-container ul .highlighted{color:var(--color-core-org-tree-highlighted);font-weight:700}.core-org-tree-container .scroll-container ul .dissolved{color:#848484;text-decoration:line-through dashed}.core-org-tree-container .scroll-container ul .dissolved.active{color:#c9252b!important}.core-org-tree-container .scroll-container ul>li{display:block;position:relative}.core-org-tree-container .scroll-container ul>li:before{content:\"\";display:block;position:absolute;width:var(--ul-padding);left:calc(var(--ul-padding) * -1);top:calc(var(--item-height) / 2);height:calc(var(--item-height) / 2);border-top:solid var(--line-size) var(--line-color);border-right:none;border-bottom:none;border-left:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul>li>span{display:flex;align-items:center;height:var(--item-height);white-space:nowrap;font-size:13px;padding-left:8px;transform:translate(10px);cursor:pointer}.core-org-tree-container .scroll-container ul>li>span>i{color:var(--square-color);cursor:pointer;font-size:var(--square-size);width:var(--square-size);height:var(--square-size)}.core-org-tree-container .scroll-container ul>li>span>.expand-toggler{font-size:var(--arrow-font-size);width:24px;height:24px;position:absolute;z-index:1;transform:translate(-100%) rotate(0);transition:.5s ease-out;display:flex;align-items:center;justify-content:center}.core-org-tree-container .scroll-container ul>li>span>.check-toggler{margin-left:5px;margin-right:5px}.core-org-tree-container .scroll-container ul>li>ul>li>span:before{content:\"\";display:block;position:absolute;width:var(--ul-padding);left:calc(var(--ul-padding) * -2);top:calc(var(--item-height) / 2);height:var(--line-size);border-top:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul>li.collapsed>span>.expand-toggler{transform:translate(-100%) rotate(-90deg);transition:.5s ease-out}.core-org-tree-container .scroll-container ul>li.collapsed:before{border-left:none}.core-org-tree-container .scroll-container ul>li:not(.collapsed):not(.has-children):before{border-left:none}.core-org-tree-container .scroll-container ul:not(.root):before{content:\"\";display:block;position:absolute;width:var(--line-size);left:calc(var(--ul-padding) * -1);height:calc(100% - var(--item-height) * 1.5);border-left:solid var(--line-size) var(--line-color);z-index:0}.core-org-tree-container .scroll-container ul:not(.root)>li:last-child:not(.collapsed).has-children:after{content:\"\";display:block;position:absolute;height:calc(100% - var(--item-height));width:calc(var(--ul-padding) / 2);left:calc(var(--ul-padding) * -2);top:calc(var(--item-height) / 2);border-left:solid var(--line-size) var(--background);z-index:0}.core-org-tree-container .scroll-container ul.collapsed:not(.root){display:none}.core-org-tree-container .collapsed>li:before{display:none!important}.core-org-tree-container.full-width .scroll-container{width:auto}.core-org-tree-container.reduced{width:50px;padding:0;transition:width .5s ease-out}.core-org-tree-container.reduced .scroll-container{overflow:hidden}.core-org-tree-container.reduced .scroll-container>ul.root{display:none}.core-org-tree-container.reduced .scroll-container>.reduced-panel{color:var(--active-item-color);width:50px;height:var(--reduced-panel-height);writing-mode:vertical-rl;text-orientation:mixed;display:flex;align-items:center;justify-content:center;font-weight:700;animation:reducedPanelOn .5s ease-out}\n"] }]
|
|
13200
13389
|
}], ctorParameters: () => [{ type: AuthService }, { type: RecursiveService }, { type: MultiLanguageService }, { type: LayoutService }, { type: CoreOrgTreeService }, { type: AlertService }, { type: OrganizationService }], propDecorators: { lineColor: [{
|
|
13201
13390
|
type: Input
|
|
13202
13391
|
}], fullWidthMode: [{
|
|
@@ -15339,7 +15528,7 @@ class CorePageListComponent extends CoreFormControlBaseComponent {
|
|
|
15339
15528
|
}
|
|
15340
15529
|
queryListSubscribe() {
|
|
15341
15530
|
if (!!!this.queryListSubscription && !!this.queryListStream$) {
|
|
15342
|
-
this.queryListSubscription = this.queryListStream$.pipe(catchError(err => {
|
|
15531
|
+
this.queryListSubscription = this.queryListStream$.pipe(catchError$1(err => {
|
|
15343
15532
|
return of({ ok: false, status: 400, body: { messageCode: this.appService.formatHttpError(err) } });
|
|
15344
15533
|
}), finalize$1(() => {
|
|
15345
15534
|
this.loading = false;
|
|
@@ -15517,7 +15706,7 @@ class CorePageListComponent extends CoreFormControlBaseComponent {
|
|
|
15517
15706
|
.subscribe((x) => {
|
|
15518
15707
|
if (x.ok && x.status === 200) {
|
|
15519
15708
|
const body = x.body;
|
|
15520
|
-
if (body.statusCode === 200
|
|
15709
|
+
if (body.statusCode === 200 /*|| x.body.statusCode == '200'*/) {
|
|
15521
15710
|
this.forceReloadingFlag$.next(!!!this.forceReloadingFlag$.value);
|
|
15522
15711
|
activateRequest.ids = [];
|
|
15523
15712
|
this.buttonGroupStatus?.mustBeHidden$.next(EMPTY_SELECTION_HIDDEN_BUTTON);
|
|
@@ -15541,7 +15730,7 @@ class CorePageListComponent extends CoreFormControlBaseComponent {
|
|
|
15541
15730
|
.subscribe((x) => {
|
|
15542
15731
|
if (x.ok && x.status === 200) {
|
|
15543
15732
|
const body = x.body;
|
|
15544
|
-
if (body.statusCode === 200
|
|
15733
|
+
if (body.statusCode === 200 /*|| x.body.statusCode == '200'*/) {
|
|
15545
15734
|
this.forceReloadingFlag$.next(!!!this.forceReloadingFlag$.value);
|
|
15546
15735
|
inactivateRequest.ids = [];
|
|
15547
15736
|
this.buttonGroupStatus?.mustBeHidden$.next(EMPTY_SELECTION_HIDDEN_BUTTON);
|
|
@@ -15573,7 +15762,7 @@ class CorePageListComponent extends CoreFormControlBaseComponent {
|
|
|
15573
15762
|
.subscribe((x) => {
|
|
15574
15763
|
if (x.ok && x.status === 200) {
|
|
15575
15764
|
const body = x.body;
|
|
15576
|
-
if (body.statusCode === 200
|
|
15765
|
+
if (body.statusCode === 200 /*|| x.body.statusCode == '200'*/) {
|
|
15577
15766
|
this.forceReloadingFlag$.next(!!!this.forceReloadingFlag$.value);
|
|
15578
15767
|
request.ids = [];
|
|
15579
15768
|
}
|
|
@@ -16090,7 +16279,7 @@ class CorePageListComponent extends CoreFormControlBaseComponent {
|
|
|
16090
16279
|
.subscribe((x) => {
|
|
16091
16280
|
if (x.ok && x.status === 200) {
|
|
16092
16281
|
const body = x.body;
|
|
16093
|
-
if (body.statusCode === 200
|
|
16282
|
+
if (body.statusCode === 200 /*|| x.body.statusCode == '200'*/) {
|
|
16094
16283
|
this.forceReloadingFlag$.next(!!!this.forceReloadingFlag$.value);
|
|
16095
16284
|
requestApprove.ids = [];
|
|
16096
16285
|
}
|
|
@@ -16128,7 +16317,7 @@ class CorePageListComponent extends CoreFormControlBaseComponent {
|
|
|
16128
16317
|
.subscribe((x) => {
|
|
16129
16318
|
if (x.ok && x.status === 200) {
|
|
16130
16319
|
const body = x.body;
|
|
16131
|
-
if (body.statusCode === 200
|
|
16320
|
+
if (body.statusCode === 200 /*|| x.body.statusCode == '200'*/) {
|
|
16132
16321
|
this.forceReloadingFlag$.next(!!!this.forceReloadingFlag$.value);
|
|
16133
16322
|
requestPendingApprove.ids = [];
|
|
16134
16323
|
}
|
|
@@ -20585,7 +20774,7 @@ class CoreDropdownComponent extends CoreFormControlBaseComponent {
|
|
|
20585
20774
|
else {
|
|
20586
20775
|
request$ = this.appService.post(this.optionApi, this.optionHttpPayload);
|
|
20587
20776
|
}
|
|
20588
|
-
request$.pipe(tap$1(() => this.loading = true), catchError(err => {
|
|
20777
|
+
request$.pipe(tap$1(() => this.loading = true), catchError$1(err => {
|
|
20589
20778
|
return of({
|
|
20590
20779
|
ok: false,
|
|
20591
20780
|
status: 500,
|
|
@@ -26911,7 +27100,7 @@ class CorePageEditComponent {
|
|
|
26911
27100
|
this.cdr.markForCheck();
|
|
26912
27101
|
}), switchMap(id => {
|
|
26913
27102
|
return this.corePageEditService.getById(id, this.crud.r)
|
|
26914
|
-
.pipe(catchError(err => {
|
|
27103
|
+
.pipe(catchError$1(err => {
|
|
26915
27104
|
this.loading = false;
|
|
26916
27105
|
const msg = err?.error?.message || // API-defined message
|
|
26917
27106
|
err?.message || // Native JS or HttpErrorResponse
|
|
@@ -27207,7 +27396,7 @@ class CorePageEditComponent {
|
|
|
27207
27396
|
.pipe(tap$1((response) => {
|
|
27208
27397
|
console.log('🔍 Inspecting response before subscribe:', response);
|
|
27209
27398
|
// You can also trigger analytics, loggers, etc.
|
|
27210
|
-
}), catchError(err => {
|
|
27399
|
+
}), catchError$1(err => {
|
|
27211
27400
|
this.loading = false;
|
|
27212
27401
|
this.cdr.detectChanges();
|
|
27213
27402
|
return of(err);
|
|
@@ -27269,7 +27458,7 @@ class CorePageEditComponent {
|
|
|
27269
27458
|
.pipe(tap$1((response) => {
|
|
27270
27459
|
console.log('🔍 Inspecting response before subscribe:', response);
|
|
27271
27460
|
// You can also trigger analytics, loggers, etc.
|
|
27272
|
-
}), catchError(err => {
|
|
27461
|
+
}), catchError$1(err => {
|
|
27273
27462
|
this.loading = false;
|
|
27274
27463
|
const msg = err?.error?.message || // API-defined message
|
|
27275
27464
|
err?.message || // Native JS or HttpErrorResponse
|
|
@@ -31333,7 +31522,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
31333
31522
|
const hrmSchemaRoutes = [
|
|
31334
31523
|
{
|
|
31335
31524
|
path: '',
|
|
31336
|
-
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-
|
|
31525
|
+
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-Bgcd9oqO.mjs').then(m => m.HrmSchemaComponent)
|
|
31337
31526
|
}
|
|
31338
31527
|
];
|
|
31339
31528
|
|
|
@@ -33506,7 +33695,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
33506
33695
|
const simpleChatRoutes = [
|
|
33507
33696
|
{
|
|
33508
33697
|
path: '',
|
|
33509
|
-
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-
|
|
33698
|
+
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-CORJcSXP.mjs').then(m => m.SimpleChatComponent)
|
|
33510
33699
|
}
|
|
33511
33700
|
];
|
|
33512
33701
|
|
|
@@ -35050,7 +35239,7 @@ class SysFunctionUrlMapperComponent extends BaseEditComponent {
|
|
|
35050
35239
|
this.subscriptions.push(this.form.get('functionId')?.valueChanges.pipe(filter(x => !!x), distinctUntilChanged(), switchMap(x => {
|
|
35051
35240
|
return this.appService.get(api.SYS_FUNCTION_READ + '?id=' + x);
|
|
35052
35241
|
})).subscribe(x => {
|
|
35053
|
-
if (x.ok && x === 200) {
|
|
35242
|
+
if (x.ok && x.status === 200) {
|
|
35054
35243
|
const body = x.body;
|
|
35055
35244
|
if (body.statusCode === 200) {
|
|
35056
35245
|
this.form.patchValue(body.innerBody);
|
|
@@ -36720,11 +36909,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
36720
36909
|
const coreDocGenRoutes = [
|
|
36721
36910
|
{
|
|
36722
36911
|
path: 'template-list',
|
|
36723
|
-
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-
|
|
36912
|
+
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-DhHh7uk3.mjs').then(m => m.TemplateListComponent),
|
|
36724
36913
|
},
|
|
36725
36914
|
{
|
|
36726
36915
|
path: ":id",
|
|
36727
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-
|
|
36916
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-fXB6492V.mjs').then(m => m.CoreTemplateEditorComponent),
|
|
36728
36917
|
canDeactivate: [CanDeactivateGuard]
|
|
36729
36918
|
},
|
|
36730
36919
|
{
|
|
@@ -36753,7 +36942,7 @@ const coreFormDesignRoutes = [
|
|
|
36753
36942
|
},
|
|
36754
36943
|
{
|
|
36755
36944
|
path: ':id',
|
|
36756
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-
|
|
36945
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-_wzTnIee.mjs').then(function (n) { return n.c; }).then(m => m.CoreFormDesignComponent)
|
|
36757
36946
|
}
|
|
36758
36947
|
];
|
|
36759
36948
|
|
|
@@ -37646,7 +37835,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
37646
37835
|
const coreNavigationTrackerRoutes = [
|
|
37647
37836
|
{
|
|
37648
37837
|
path: '',
|
|
37649
|
-
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-
|
|
37838
|
+
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-DxwHNKW5.mjs').then(m => m.TrackerStudioComponent)
|
|
37650
37839
|
}
|
|
37651
37840
|
];
|
|
37652
37841
|
|
|
@@ -39835,33 +40024,33 @@ const coreWorkflowRoutes = [
|
|
|
39835
40024
|
{
|
|
39836
40025
|
path: 'form-assign/:id',
|
|
39837
40026
|
outlet: "formAssignAux",
|
|
39838
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-
|
|
40027
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-CTwMGHCL.mjs').then(m => m.WfFormAssignComponent),
|
|
39839
40028
|
canDeactivate: [CanDeactivateGuard]
|
|
39840
40029
|
}
|
|
39841
40030
|
]
|
|
39842
40031
|
},
|
|
39843
40032
|
{
|
|
39844
40033
|
path: 'global-config',
|
|
39845
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-
|
|
40034
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-C0FY6YVB.mjs').then(m => m.WfGlobalConfigComponent)
|
|
39846
40035
|
},
|
|
39847
40036
|
{
|
|
39848
40037
|
path: 'db-settings',
|
|
39849
|
-
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-
|
|
40038
|
+
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-BpIse2rU.mjs').then(m => m.DbSettingsComponent)
|
|
39850
40039
|
},
|
|
39851
40040
|
{
|
|
39852
40041
|
path: 'workflow-consume',
|
|
39853
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-
|
|
40042
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-CSsLmLR2.mjs').then(m => m.CoreWorkflowConsumeComponent),
|
|
39854
40043
|
children: [
|
|
39855
40044
|
{
|
|
39856
40045
|
path: ':id',
|
|
39857
40046
|
outlet: "workflowConsume",
|
|
39858
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
40047
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-DCmSKu9J.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
39859
40048
|
}
|
|
39860
40049
|
]
|
|
39861
40050
|
},
|
|
39862
40051
|
{
|
|
39863
40052
|
path: 'workflow-consume/:id',
|
|
39864
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
40053
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-DCmSKu9J.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
39865
40054
|
},
|
|
39866
40055
|
{
|
|
39867
40056
|
path: 'workflow-group-edit/:id',
|
|
@@ -39871,17 +40060,17 @@ const coreWorkflowRoutes = [
|
|
|
39871
40060
|
},
|
|
39872
40061
|
{
|
|
39873
40062
|
path: 'design/:id',
|
|
39874
|
-
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-
|
|
40063
|
+
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-BQUP7aD3.mjs').then(m => m.wfDesignWrapperRoutes),
|
|
39875
40064
|
},
|
|
39876
40065
|
]
|
|
39877
40066
|
},
|
|
39878
40067
|
{
|
|
39879
40068
|
path: 'react/:id',
|
|
39880
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-
|
|
40069
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-C1lVDinr.mjs').then(m => m.WfInstanceStepReactComponent)
|
|
39881
40070
|
},
|
|
39882
40071
|
{
|
|
39883
40072
|
path: 'status/:id',
|
|
39884
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-
|
|
40073
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-BXGA_qii.mjs').then(m => m.WfInstanceStatusComponent)
|
|
39885
40074
|
}
|
|
39886
40075
|
];
|
|
39887
40076
|
|
|
@@ -40084,19 +40273,41 @@ class CoreWorkflowListComponent extends BaseComponent {
|
|
|
40084
40273
|
this.appService = appService;
|
|
40085
40274
|
this.alertService = alertService;
|
|
40086
40275
|
this.mls = mls;
|
|
40276
|
+
this.controller = null;
|
|
40087
40277
|
this.$tabHeader = signal('Drafts');
|
|
40088
40278
|
this.$loading = signal(false);
|
|
40089
40279
|
this.$sortMode = signal(false);
|
|
40090
40280
|
this.searchTearm$ = new BehaviorSubject('');
|
|
40091
|
-
this.orderChanges$ = new
|
|
40281
|
+
this.orderChanges$ = new BehaviorSubject([]);
|
|
40282
|
+
this.tabHeaderChanges$ = new BehaviorSubject('Drafts');
|
|
40283
|
+
this.workflowDeletedFlag$ = new BehaviorSubject(false);
|
|
40284
|
+
this.workflowPublishedFlag$ = new BehaviorSubject(false);
|
|
40285
|
+
this.mergedState$ = combineLatest([
|
|
40286
|
+
this.searchTearm$,
|
|
40287
|
+
this.orderChanges$,
|
|
40288
|
+
this.tabHeaderChanges$,
|
|
40289
|
+
this.workflowDeletedFlag$,
|
|
40290
|
+
this.workflowPublishedFlag$
|
|
40291
|
+
]).pipe(debounceTime(300), distinctUntilChanged(([s1, o1, t1, d1, p1], [s2, o2, t2, d2, p2]) => s1 === s2 &&
|
|
40292
|
+
JSON.stringify(o1) === JSON.stringify(o2) &&
|
|
40293
|
+
t1 === t2 &&
|
|
40294
|
+
d1 === d2 &&
|
|
40295
|
+
p1 === p2), map$1(([searchTerm, orderChanges, tabHeader, deletedFlag, publishedFlag]) => ({
|
|
40296
|
+
searchTerm,
|
|
40297
|
+
orderChanges,
|
|
40298
|
+
tabHeader,
|
|
40299
|
+
deletedFlag,
|
|
40300
|
+
publishedFlag
|
|
40301
|
+
})));
|
|
40092
40302
|
this.isDevMode = isDevMode();
|
|
40093
40303
|
this.pointerdown$ = new Subject();
|
|
40094
40304
|
this.$activeWorkflowGroup = signal(undefined);
|
|
40095
40305
|
this.$activeWorkflow = signal(undefined);
|
|
40096
40306
|
effect(() => {
|
|
40097
40307
|
const tabHeader = this.$tabHeader();
|
|
40098
|
-
const published = tabHeader === 'Published'
|
|
40099
|
-
this.
|
|
40308
|
+
//const published = tabHeader === 'Published'
|
|
40309
|
+
this.tabHeaderChanges$.next(tabHeader);
|
|
40310
|
+
//this.coreWorkflowService.refresh(undefined, this.searchTearm$.value, undefined, published)
|
|
40100
40311
|
});
|
|
40101
40312
|
this.doublePointDown = this.pointerdown$.pipe(buffer(this.pointerdown$.pipe(debounceTime(500))), filter(clicks => clicks.length >= 2)).subscribe(() => {
|
|
40102
40313
|
if (!!this.$activeWorkflow()) {
|
|
@@ -40131,20 +40342,19 @@ class CoreWorkflowListComponent extends BaseComponent {
|
|
|
40131
40342
|
deleteWorkflow(flow) {
|
|
40132
40343
|
if (confirm(`Are you sure about deleting this flow "${flow.name}"`)) {
|
|
40133
40344
|
this.$loading.set(true);
|
|
40134
|
-
this.subscriptions.push(this.appService.post('/api/WfWorkflow/DeleteTogetherWithAfInstance', { id: flow.id }).pipe(catchError(err => {
|
|
40135
|
-
this.$loading.set(false);
|
|
40345
|
+
this.subscriptions.push(this.appService.post('/api/WfWorkflow/DeleteTogetherWithAfInstance', { id: flow.id }).pipe(tap$1(() => this.$loading.set(true)), catchError$1(err => {
|
|
40136
40346
|
return of(err);
|
|
40137
|
-
})).subscribe(x => {
|
|
40138
|
-
this.$loading.set(false);
|
|
40347
|
+
}), finalize$1(() => this.$loading.set(false))).subscribe(x => {
|
|
40139
40348
|
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
40140
|
-
this.coreWorkflowService.refresh(undefined, this.searchTearm$.value);
|
|
40349
|
+
//this.coreWorkflowService.refresh(undefined, this.searchTearm$.value);
|
|
40350
|
+
this.workflowDeletedFlag$.next(!this.workflowDeletedFlag$.value);
|
|
40141
40351
|
}
|
|
40142
40352
|
}));
|
|
40143
40353
|
}
|
|
40144
40354
|
}
|
|
40145
40355
|
toggleLock(flow, group) {
|
|
40146
40356
|
this.subscriptions.push(this.coreWorkflowService.toggleFlowLock(flow.id)
|
|
40147
|
-
.pipe(tap$1(_ => this.$loading.set(true)), catchError(err => {
|
|
40357
|
+
.pipe(tap$1(_ => this.$loading.set(true)), catchError$1(err => {
|
|
40148
40358
|
console.error('🚨 Backend update failed:', err);
|
|
40149
40359
|
this.$loading.set(false);
|
|
40150
40360
|
return of({ ok: false, status: 500, body: { statusCode: 500 } });
|
|
@@ -40195,16 +40405,86 @@ class CoreWorkflowListComponent extends BaseComponent {
|
|
|
40195
40405
|
}
|
|
40196
40406
|
ngAfterViewInit() {
|
|
40197
40407
|
requestAnimationFrame(() => {
|
|
40198
|
-
this.coreWorkflowService.refresh(undefined, this.searchTearm$.value);
|
|
40199
|
-
|
|
40200
|
-
|
|
40408
|
+
//this.coreWorkflowService.refresh(undefined, this.searchTearm$.value);
|
|
40409
|
+
/*
|
|
40410
|
+
this.subscriptions.push(
|
|
40411
|
+
this.mergedState$.pipe(
|
|
40412
|
+
tap(() => this.$loading.set(true)),
|
|
40413
|
+
debounceTime(500),
|
|
40414
|
+
distinctUntilChanged(),
|
|
40415
|
+
switchMap((x) => {
|
|
40416
|
+
if (this.controller) this.controller.abort();
|
|
40417
|
+
return this.coreWorkflowService.refreshObservable('/api/WfWorkflowGroup/GetAllWithWorkflows', x.searchTerm, undefined, false)
|
|
40418
|
+
}),
|
|
40419
|
+
finalize(() => {
|
|
40420
|
+
this.$loading.set(false)
|
|
40421
|
+
this.controller = null;
|
|
40422
|
+
})
|
|
40423
|
+
).subscribe(x => {
|
|
40424
|
+
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
40425
|
+
this.coreWorkflowService.$allGroups.set(
|
|
40426
|
+
(x.body?.innerBody as IWfWorkflowGroup[])
|
|
40427
|
+
.map(x => ({ ...x, orderNum: x.orderNum ?? 999 }))
|
|
40428
|
+
.sort((a, b) => a.orderNum - b.orderNum)
|
|
40429
|
+
)
|
|
40430
|
+
}
|
|
40431
|
+
})
|
|
40432
|
+
)
|
|
40433
|
+
*/
|
|
40434
|
+
this.subscriptions.push(this.mergedState$.pipe(tap$1(() => this.$loading.set(true)), debounceTime(500), distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), switchMap(x => {
|
|
40435
|
+
// 🧹 Cancel previous request if still running
|
|
40436
|
+
if (this.controller)
|
|
40437
|
+
this.controller.abort();
|
|
40438
|
+
// 🧩 Create a new controller for this request
|
|
40439
|
+
this.controller = new AbortController();
|
|
40440
|
+
// 🔹 Pass the signal to your service
|
|
40441
|
+
return this.coreWorkflowService.refreshObservable('/api/WfWorkflowGroup/GetAllWithWorkflows', x.searchTerm, undefined, false, this.controller.signal).pipe(
|
|
40442
|
+
// Always catch inside switchMap so the stream doesn’t die
|
|
40443
|
+
catchError$1(err => {
|
|
40444
|
+
console.error('🚨 Backend fetch failed:', err);
|
|
40445
|
+
return of({
|
|
40446
|
+
ok: true,
|
|
40447
|
+
status: 200,
|
|
40448
|
+
body: {
|
|
40449
|
+
statusCode: 400,
|
|
40450
|
+
messageCode: 'REQUEST_CANCELLED',
|
|
40451
|
+
errorType: 1,
|
|
40452
|
+
innerBody: null
|
|
40453
|
+
}
|
|
40454
|
+
});
|
|
40455
|
+
}));
|
|
40456
|
+
}), finalize$1(() => {
|
|
40457
|
+
this.$loading.set(false);
|
|
40458
|
+
if (this.controller) {
|
|
40459
|
+
this.controller.abort();
|
|
40460
|
+
this.controller = null;
|
|
40461
|
+
}
|
|
40462
|
+
}))
|
|
40463
|
+
.subscribe(x => {
|
|
40464
|
+
this.$loading.set(false);
|
|
40465
|
+
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
40466
|
+
const groups = x.body.innerBody
|
|
40467
|
+
.map(g => ({ ...g, orderNum: g.orderNum ?? 999 }))
|
|
40468
|
+
.sort((a, b) => a.orderNum - b.orderNum);
|
|
40469
|
+
this.coreWorkflowService.$allGroups.set(groups);
|
|
40470
|
+
}
|
|
40471
|
+
else {
|
|
40472
|
+
console.warn('⚠️ GetAllWithWorkflows returned non-200 statusCode', x.body);
|
|
40473
|
+
}
|
|
40201
40474
|
}));
|
|
40202
40475
|
this.subscriptions.push(this.orderChanges$
|
|
40203
|
-
.pipe(debounceTime(800), // wait 800ms after last change
|
|
40476
|
+
.pipe(skip(1), debounceTime(800), // wait 800ms after last change
|
|
40204
40477
|
distinctUntilChanged((a, b) => JSON.stringify(a.map(x => ({ id: x.id, orderNum: x.orderNum }))) ===
|
|
40205
|
-
JSON.stringify(b.map(x => ({ id: x.id, orderNum: x.orderNum })))), switchMap(newOrder =>
|
|
40478
|
+
JSON.stringify(b.map(x => ({ id: x.id, orderNum: x.orderNum })))), switchMap(newOrder => {
|
|
40479
|
+
if (this.controller)
|
|
40480
|
+
this.controller.abort();
|
|
40481
|
+
return this.coreWorkflowService.updateGroupOrder(newOrder);
|
|
40482
|
+
}), catchError$1(err => {
|
|
40206
40483
|
console.error('🚨 Backend update failed:', err);
|
|
40207
40484
|
return of({ ok: false, status: 500, body: { statusCode: 500 } });
|
|
40485
|
+
}), finalize$1(() => {
|
|
40486
|
+
if (this.controller)
|
|
40487
|
+
this.controller = null;
|
|
40208
40488
|
}))
|
|
40209
40489
|
.subscribe(x => {
|
|
40210
40490
|
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
@@ -40352,7 +40632,7 @@ class CoreWorkflowGroupEditComponent extends BaseEditComponent {
|
|
|
40352
40632
|
this.formInitStringValue = e;
|
|
40353
40633
|
}
|
|
40354
40634
|
onSubmitSuccess(e) {
|
|
40355
|
-
this.coreWorkflowService.refresh(undefined, '');
|
|
40635
|
+
//this.coreWorkflowService.refresh(undefined, '');
|
|
40356
40636
|
this.router.navigate([{ outlets: { workflowAux: null } }], { relativeTo: this.route.parent });
|
|
40357
40637
|
}
|
|
40358
40638
|
ngOnDestroy() {
|
|
@@ -42412,4 +42692,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
42412
42692
|
*/
|
|
42413
42693
|
|
|
42414
42694
|
export { CoreButtonGroupVnsComponent as $, AppService as A, BaseComponent as B, ChatService as C, DialogService as D, EnumCoreTablePipeType as E, FullscreenModalLoaderComponent as F, CoreDatePickerComponent as G, CoreFormControlSeekerComponent as H, ImageErrorResolverDirective as I, CoreCurrencyInputComponent as J, EnumActorSourceType as K, CoreParamControlComponent as L, MultiLanguageService as M, CoreRadioGroupComponent as N, GptService as O, ApplicationHelpService as P, HotKeysDirective as Q, EnumCorePageEditMode as R, SocketService as S, TranslatePipe as T, CoreFormComponent as U, NavigatorService as V, JsonService as W, AppConfigService as X, EnumCoreButtonVNSCode as Y, READONLY_WORKFLOW_FIELDS as Z, noneAutoClosedAlertOptions as _, CorePageListComponent as a, CommonHttpRequestService as a$, CoreStickerCollectionComponent as a0, HtmlTooltipDirective as a1, CoreControlNoFormArrayComponent as a2, EnumFormDesignMode as a3, CoreControlComponent as a4, JsonSafePipe as a5, CoreAttachmentComponent as a6, CoreMonthSelectorComponent as a7, EnumImageResolverType as a8, NormalizeHumanNamePipe as a9, EnumStyleButtonClass as aA, CanActivateFunctionUrlMapperGuard as aB, InitializationCanActivateFn as aC, InitializationCanMatchFn as aD, httpInterceptorProviders as aE, InterceptorSkipHeader as aF, appTypeInterceptor as aG, baseUrlInterceptor as aH, authInterceptor as aI, graphInterceptor as aJ, tokenInterceptor as aK, responseInterceptor as aL, timeZoneInterceptor as aM, cachingInterceptor as aN, langInterceptor as aO, EnumFilterOperator as aP, OnlineUsersComponent as aQ, ActionService as aR, AppInitializationService as aS, AuthService as aT, CacheService as aU, EnumSwUpdateVersionUpdatesEventType as aV, CheckForUpdateService as aW, EnumDeviceType as aX, EnumBrowserType as aY, EnumOsType as aZ, ClientService as a_, CoreIosSwitcherComponent as aa, SunnyRotatingComponent as ab, MapAppdemoToServerPipePipe as ac, MapAttachmentToServerPipe as ad, MapNewsfeedMediaToServerPipe as ae, StringHtmlPipe as af, UploadedFilenameCutoffPipe as ag, DialogStateComponent as ah, FooterComponent as ai, RightchatComponent as aj, WaittingScreenComponent as ak, longAlertOptions as al, attachmentOptions as am, CORE_VNS_BUTTONS as an, defaultPaging as ao, DESKTOP_SCREEN_HEDER_HEIGHT as ap, MOBILE_SCREEN_HEDER_HEIGHT as aq, themeBlue as ar, DATE_VALUE_ACCESSOR as as, DateValueAccessor as at, EnumDragType as au, EnumErrorType as av, EnumIconClass as aw, EnumProfileInfoSector as ax, EnumSignalRType as ay, EnumSortDirection as az, CoreCheckboxComponent as b, MutationViewComponent as b$, TLA_CONFIG as b0, ConfigService as b1, CoreTableService as b2, DndService as b3, DocxMergeService as b4, FilterKitService as b5, GrpcService as b6, HeaderService as b7, HistoryService as b8, HttpErrorHandler as b9, TopicPermissionService as bA, TopicTreeService as bB, UploadedFileService as bC, UrlService as bD, UserActivityService as bE, EvaluateDialogService as bF, EnumWorkScheduleViewMode as bG, WorkShiftDndService as bH, AtShiftPatternComponent as bI, AtShiftPatternApplyComponent as bJ, AtShiftPatternEditComponent as bK, AtWorksignComponent as bL, AtWorksignService as bM, FunctionComponent as bN, IndividualScheduleApplyComponent as bO, FunctionEditComponent as bP, FunctionIgnoreComponent as bQ, FunctionIgnoreEditComponent as bR, GroupFunctionComponent as bS, GroupFunctionEditComponent as bT, hrmSchemaRoutes as bU, InMemoryComponent as bV, LanguageComponent as bW, LanguageEditComponent as bX, MenuComponent as bY, MenuEditComponent as bZ, MutationLogComponent as b_, HubConnectionService as ba, IpServiceService as bb, LayoutService as bc, LiquidJsService as bd, MapService as be, MenuService as bf, MessageService as bg, ModalService as bh, OrganizationService as bi, PkceService as bj, PositionTransferService as bk, EnumNotificationDir as bl, NotificationActionType as bm, PushNotificationService as bn, RandomAvatarService as bo, RequestCache as bp, RequestCacheWithMap as bq, ResponseService as br, RoutingService as bs, EnumSsrsExpressFileExtension as bt, EnumSsrsExpressExportFormat as bu, SsrsExpressService as bv, StatisticService as bw, StatisticAuthService as bx, SysMenuService as by, TimeSheetService as bz, BaseEditComponent as c, EnumCoreFileUploaderType as c$, PaSalaryPolicyComponent as c0, PaSalaryPolicyEditComponent as c1, PortalRouteComponent as c2, ScheduleOverviewComponent as c3, simpleChatRoutes as c4, PortalRouteEditComponent as c5, SysOtherListComponent as c6, SysOtherListEditComponent as c7, SysOtherListTypeComponent as c8, SysOtherListTypeEditComponent as c9, NewlyCreatedTokenService as cA, CoreApiProgressComponent as cB, CoreButtonGroupComponent as cC, EnumCoreButtonCode as cD, ActionSvgEditComponent as cE, CoreButtonGroupService as cF, CoreButtonVnsComponent as cG, CoreCommonParamKitComponent as cH, CoreCompareDbPipelineComponent as cI, CoreCompositionState as cJ, CoreCompositionService as cK, CoreCompositionComponent as cL, CoreConfirmDialogComponent as cM, ConfirmDialogStateComponent as cN, CoreLazyMountComponent as cO, CoreRootMenuItemPickerComponent as cP, CoreRootMenuItemPickerService as cQ, ECoreTableToolCode as cR, ECoreTableToolClass as cS, CoreTableComponent as cT, CoreContractSeekerComponent as cU, CoreControlNoGridBufferComponent as cV, CoreControlNoSeekerComponent as cW, coreDocGenRoutes as cX, CoreDocgenToolbarComponent as cY, CoreEmployeeScheduleComponent as cZ, CoreEmployeeSeekerComponent as c_, SysActionComponent as ca, SysActionEditComponent as cb, SysFunctionActionComponent as cc, SysFunctionActionEditComponent as cd, SysFunctionActionMapperComponent as ce, SysFunctionUrlMapperComponent as cf, FunctionEditService as cg, SysModuleComponent as ch, SysModuleEditComponent as ci, SysRouteAccessComponent as cj, liner_to_nested_array_script as ck, blob_to_base64_script as cl, AlertComponent as cm, EnumAlertType as cn, IAlertOptions as co, AnimatedTextService as cp, AnimatedTextComponent as cq, BaseDropdownComponent as cr, ButtonGroupModule as cs, ButtonGroupService as ct, ButtonGroupComponent as cu, EnumButtonCaptionCode as cv, CoreButtonComponent as cw, CoreAccordionComponent as cx, CoreAccordionService as cy, CoreActiveUserCountComponent as cz, EnumFormBaseContolType as d, CorePositionConcurrentSeekerComponent as d$, CoreFileUploaderComponent as d0, CoreFilterHubComponent as d1, CoreFilterHubService as d2, ControlBase as d3, Textbox as d4, CoreControlService as d5, CustomValidators as d6, URL_PATTERN as d7, coreFormDesignRoutes as d8, CoreFormTabComponent as d9, EnumCoreOrgTreeaAccessorMode as dA, EnumCoreOrgTreeaSearchMode as dB, CoreOrgTreeComponent as dC, CoreOrgTreeState as dD, CoreOrgTreeService as dE, CoreOrgUnitSeekerComponent as dF, CoreOrgchartflexComponent as dG, CoreOrgParamComponent as dH, EnumCorePageEditBootstrapClass as dI, EnumCorePageEditFieldType as dJ, CorePageEditService as dK, CorePageEditLiteComponent as dL, CorePageEditTabComponent as dM, EnumExType as dN, CorePageListService as dO, CorePageListState as dP, CorePageListContentComponent as dQ, EnumCoreViewItemType as dR, CorePageViewComponent as dS, CorePaginationComponent as dT, CorePaginationFullComponent as dU, CorePaginationFullService as dV, CoreFileFormatPickerComponent as dW, CorePermissionService as dX, EnumPermissionObjectType as dY, CorePermissionComponent as dZ, CorePermissionActionsComponent as d_, CoreFormLiteComponent as da, CoreFormControlBaseComponent as db, EnumCoreSeekerColumnJob as dc, EnumCoreSeekerColumnStaffProfile as dd, EnumCoreSeekerColumnContract as de, EnumCoreSeekerColumnWorking as df, EnumCoreSeekerColumnWage as dg, EnumCoreSeekerColumnPosition as dh, EnumCoreSeekerColumnPositionConcurrent as di, EnumCoreSeekerColumnAutoForm as dj, SeekerService as dk, CoreGridBufferComponent as dl, CoreHeaderParamsComponent as dm, CoreHelperComponent as dn, CoreLineComponent as dp, CoreLiquidWysiwygComponent as dq, CoreListComponent as dr, CoreListLazyComponent as ds, CoreLoadingSurfaceComponent as dt, CoreMccComponent as du, CoreMonthPickerComponent as dv, CoreNavigationTrackerComponent as dw, coreNavigationTrackerRoutes as dx, CoreOauthCallbackComponent as dy, CoreOauthCallbackOffice365Component as dz, CorePageEditComponent as e, UnicodeService as e$, CorePositionSeekerComponent as e0, CoreQrcodeComponent as e1, EnumOparator as e2, CoreQueryBuilderComponent as e3, CoreReducerIconComponent as e4, CoreRotatingTextComponent as e5, CoreRouteAccumulatorComponent as e6, CoreRoutingHistoryComponent as e7, CoreSalaryPolicyPickerComponent as e8, CoreScrollComponent as e9, CorePieComponent as eA, CoreScatterPlotComponent as eB, EnumHrComparisonCode as eC, EnumICoreStatisticWidgetDataType as eD, CoreStatisticWidgetComponent as eE, DecisionComponent as eF, EvaluateDialogComponent as eG, HuconcurrentlyComponent as eH, JobComponent as eI, LanguageChangerComponent as eJ, DEFAULT_SVG as eK, ItemComponent as eL, NavigatorComponent as eM, OtpInputComponent as eN, OtpInputService as eO, PageTitleComponent as eP, PaginationComponent as eQ, FilterPipe as eR, normalizeHumanName as eS, PositionComponent as eT, PositionEditService as eU, CoreDatetimeService as eV, FileService as eW, LongTaskService as eX, EnumRecursiveFields as eY, RecursiveService as eZ, StringService as e_, CoreScrollLazyComponent as ea, CoreSeenByComponent as eb, CoreShiftCardComponent as ec, CoreShiftCellComponent as ed, CoreShiftCollectionComponent as ee, CoreShiftStickerComponent as ef, STICKER_COLOR_SCHEMA as eg, CoreStatusStickerComponent as eh, CoreSubFormGroupComponent as ei, CoreTabListComponent as ej, CoreTagsComponent as ek, CoreTopicPickerComponent as el, EnumCoreArticleCategoryTreeaAccessorMode as em, CoreTopicTreeComponent as en, CoreTreeComponent as eo, EnumCoreTreeGridEditMode as ep, CoreTreeGridComponent as eq, CoreWageSeekerComponent as er, CoreWorkingSeekerComponent as es, coreWorkflowRoutes as et, CoreWorkflowBuilderComponent as eu, CoreWorkflowGroupEditComponent as ev, CoreYearPickerComponent as ew, CoreYearSelectorComponent as ex, EnumCoreD3ScaleType as ey, CoreD3Service as ez, CorePageHeaderComponent as f, StaffProfileComponent as f0, ThreedotsComponent as f1, TooltipComponent as f2, UserActivityComponent as f3, WageComponent as f4, tooltip_directive as f5, coreStickerCollection_component as f6, dragReorder_directive as f7, CoreTabsComponent as g, CoreWorkflowService as h, EnumCoreFormControlSeekerSourceType as i, AlertService as j, CoreFormService as k, DbService as l, AiHintForColumnComponent as m, CoreWorkflowListComponent as n, TooltipDirective as o, DragReorderDirective as p, CanDeactivateGuard as q, TableCellPipe as r, MapAvatarToServerPipe as s, alertOptions as t, CoreTerminalSpinnerComponent as u, CoreFormDesignService as v, EnumWorkflowStepType as w, DomService as x, CoreDropdownComponent as y, CoreChecklistComponent as z };
|
|
42415
|
-
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-
|
|
42695
|
+
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-DsL5Ex6R.mjs.map
|