ngx-histaff-alpha 6.7.1 → 6.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-BzT2Iy4s.mjs → ngx-histaff-alpha-ai-hint-for-table.component-Bte6lZRW.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-BzT2Iy4s.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-Bte6lZRW.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-BachxUuk.mjs → ngx-histaff-alpha-core-form-design.component-B6FlKxx3.mjs} +30 -17
- package/fesm2022/ngx-histaff-alpha-core-form-design.component-B6FlKxx3.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-BOkGm2xc.mjs → ngx-histaff-alpha-core-sys-action.component-nV8vRPuH.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-BOkGm2xc.mjs.map → ngx-histaff-alpha-core-sys-action.component-nV8vRPuH.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-C1uiDbQ_.mjs → ngx-histaff-alpha-core-template-editor.component-BfEwWuRe.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-C1uiDbQ_.mjs.map → ngx-histaff-alpha-core-template-editor.component-BfEwWuRe.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-BljA3IwF.mjs → ngx-histaff-alpha-core-toast-loading.component-Du3m6ySu.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-BljA3IwF.mjs.map → ngx-histaff-alpha-core-toast-loading.component-Du3m6ySu.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-BoO4jaUz.mjs → ngx-histaff-alpha-core-workflow-consume.component-IzPHcKl5.mjs} +5 -5
- package/fesm2022/ngx-histaff-alpha-core-workflow-consume.component-IzPHcKl5.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-B-lySQz9.mjs → ngx-histaff-alpha-db-settings.component-DH4Fq2Yv.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-B-lySQz9.mjs.map → ngx-histaff-alpha-db-settings.component-DH4Fq2Yv.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-BjtqBYQ3.mjs → ngx-histaff-alpha-design-wrapper.component-DS1ea5Ui.mjs} +12 -5
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-DS1ea5Ui.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-BF4ui2Ri.mjs → ngx-histaff-alpha-design-wrapper.route-DXjUCfDr.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-BF4ui2Ri.mjs.map → ngx-histaff-alpha-design-wrapper.route-DXjUCfDr.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-Bj_8dNBq.mjs → ngx-histaff-alpha-hrm-schema.component-Dtuq7gL3.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-Bj_8dNBq.mjs.map → ngx-histaff-alpha-hrm-schema.component-Dtuq7gL3.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-live-form.component-DATYJbp2.mjs → ngx-histaff-alpha-live-form.component-3aIY5wK4.mjs} +11 -5
- package/fesm2022/ngx-histaff-alpha-live-form.component-3aIY5wK4.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-B9FVtqsv.mjs → ngx-histaff-alpha-ngx-histaff-alpha-50AdT87r.mjs} +533 -199
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-50AdT87r.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BD9DxT2g.mjs → ngx-histaff-alpha-simple-chat.component-a2oeJnvW.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BD9DxT2g.mjs.map → ngx-histaff-alpha-simple-chat.component-a2oeJnvW.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client-edit.component-CkhBQMpG.mjs → ngx-histaff-alpha-sys-smtp-client-edit.component-BKmXj13P.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client-edit.component-CkhBQMpG.mjs.map → ngx-histaff-alpha-sys-smtp-client-edit.component-BKmXj13P.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client.component-SlwM7_8a.mjs → ngx-histaff-alpha-sys-smtp-client.component-BnGhC9BX.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client.component-SlwM7_8a.mjs.map → ngx-histaff-alpha-sys-smtp-client.component-BnGhC9BX.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-template-list.component-_YlHy5vX.mjs → ngx-histaff-alpha-template-list.component-DHUmOX9J.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-template-list.component-_YlHy5vX.mjs.map → ngx-histaff-alpha-template-list.component-DHUmOX9J.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-BBwt5xze.mjs → ngx-histaff-alpha-tracker-studio.component-B-OcW4bn.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-BBwt5xze.mjs.map → ngx-histaff-alpha-tracker-studio.component-B-OcW4bn.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-CQxG5wsU.mjs → ngx-histaff-alpha-wf-form-assign.component-BGRSrIy9.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-CQxG5wsU.mjs.map → ngx-histaff-alpha-wf-form-assign.component-BGRSrIy9.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-_3kEmn7n.mjs → ngx-histaff-alpha-wf-global-config.component-BJ8BRR0f.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-_3kEmn7n.mjs.map → ngx-histaff-alpha-wf-global-config.component-BJ8BRR0f.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-B4eEPgto.mjs → ngx-histaff-alpha-wf-instance-status.component-CzGlTh39.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-B4eEPgto.mjs.map → ngx-histaff-alpha-wf-instance-status.component-CzGlTh39.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-A5CgnJlF.mjs → ngx-histaff-alpha-wf-instance-step-react.component-DHplywAb.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-A5CgnJlF.mjs.map → ngx-histaff-alpha-wf-instance-step-react.component-DHplywAb.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-lab.component-ChYV1RAr.mjs → ngx-histaff-alpha-wf-lab.component-CH3mUOGG.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-lab.component-ChYV1RAr.mjs.map → ngx-histaff-alpha-wf-lab.component-CH3mUOGG.mjs.map} +1 -1
- package/fesm2022/ngx-histaff-alpha.mjs +1 -1
- package/lib/app/libraries/alert/alert/alert.model.d.ts +1 -0
- package/lib/app/libraries/alert/alert.service.d.ts +3 -1
- package/lib/app/libraries/core-date-picker/core-date-picker/core-date-picker.component.d.ts +27 -2
- package/lib/app/libraries/core-dom-decision-editor/core-dom-decision-editor.component.d.ts +3 -1
- package/lib/app/libraries/core-dom-decision-editor/dom-decision-context.service.d.ts +2 -0
- package/lib/app/libraries/core-dom-decision-editor/dom-oid-factory/dom-oid-factory.component.d.ts +19 -0
- package/lib/app/libraries/core-dom-decision-editor/enum-interfaces/intent-descriptor.model.d.ts +1 -1
- package/lib/app/libraries/core-dom-decision-editor/intent-composer/intent-composer.component.d.ts +7 -4
- package/lib/app/libraries/core-form/core-form/enum-interfaces.d.ts +1 -0
- package/lib/app/libraries/core-form-design/field-setting/type-specific/datepicker-props/datepicker-props.component.d.ts +6 -3
- package/lib/app/libraries/core-form-design/live-form/live-form.component.d.ts +1 -0
- package/lib/app/libraries/services/core-datetime.service.d.ts +37 -0
- package/package.json +2 -2
- package/fesm2022/ngx-histaff-alpha-core-form-design.component-BachxUuk.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-core-workflow-consume.component-BoO4jaUz.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-BjtqBYQ3.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-live-form.component-DATYJbp2.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-B9FVtqsv.mjs.map +0 -1
- package/lib/app/libraries/dom-oid-factory/dom-oid-factory.component.d.ts +0 -12
|
@@ -2559,6 +2559,8 @@ class IAlertOptions {
|
|
|
2559
2559
|
class AlertService {
|
|
2560
2560
|
constructor() {
|
|
2561
2561
|
this.alerts$ = new BehaviorSubject([]);
|
|
2562
|
+
this.activeDedupeKeys = new Set();
|
|
2563
|
+
this.dedupeKeyByAlertId = new Map();
|
|
2562
2564
|
}
|
|
2563
2565
|
success(message, options) {
|
|
2564
2566
|
if (!message)
|
|
@@ -2569,8 +2571,15 @@ class AlertService {
|
|
|
2569
2571
|
error(message, options) {
|
|
2570
2572
|
if (!message)
|
|
2571
2573
|
return;
|
|
2572
|
-
const
|
|
2573
|
-
|
|
2574
|
+
const alert = {
|
|
2575
|
+
id: crypto.randomUUID(),
|
|
2576
|
+
type: EnumAlertType.Error,
|
|
2577
|
+
message,
|
|
2578
|
+
autoClose: options?.autoClose,
|
|
2579
|
+
keepAfterRouteChange: options?.keepAfterRouteChange,
|
|
2580
|
+
timeClose: options?.timeClose
|
|
2581
|
+
};
|
|
2582
|
+
this.alert(alert, options);
|
|
2574
2583
|
}
|
|
2575
2584
|
info(message, options) {
|
|
2576
2585
|
if (!message)
|
|
@@ -2585,12 +2594,25 @@ class AlertService {
|
|
|
2585
2594
|
this.alert({ ...options, type: EnumAlertType.Warning, message, id });
|
|
2586
2595
|
}
|
|
2587
2596
|
// main alert method
|
|
2588
|
-
alert(alert) {
|
|
2597
|
+
alert(alert, options) {
|
|
2598
|
+
const dedupeKey = options?.dedupeKey;
|
|
2599
|
+
if (dedupeKey) {
|
|
2600
|
+
// 🚫 đã có alert cùng loại → bỏ qua
|
|
2601
|
+
if (this.activeDedupeKeys.has(dedupeKey))
|
|
2602
|
+
return;
|
|
2603
|
+
this.activeDedupeKeys.add(dedupeKey);
|
|
2604
|
+
this.dedupeKeyByAlertId.set(alert.id, dedupeKey);
|
|
2605
|
+
}
|
|
2589
2606
|
alert.id = alert.id;
|
|
2590
2607
|
this.alerts$.next([...this.alerts$.value, alert]);
|
|
2591
2608
|
}
|
|
2592
2609
|
// clear alerts
|
|
2593
2610
|
clear(id) {
|
|
2611
|
+
const dedupeKey = this.dedupeKeyByAlertId.get(id);
|
|
2612
|
+
if (dedupeKey) {
|
|
2613
|
+
this.activeDedupeKeys.delete(dedupeKey);
|
|
2614
|
+
this.dedupeKeyByAlertId.delete(id);
|
|
2615
|
+
}
|
|
2594
2616
|
this.alerts$.next(this.alerts$.value.filter(x => x.id !== id));
|
|
2595
2617
|
}
|
|
2596
2618
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AlertService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -7917,6 +7939,7 @@ class CoreFormDesignService {
|
|
|
7917
7939
|
rangeLimit: control.rangeLimit,
|
|
7918
7940
|
popupAlign: control.popupAlign,
|
|
7919
7941
|
showPlaceholder: control.showPlaceholder,
|
|
7942
|
+
$rangePoint: control.$rangePoint
|
|
7920
7943
|
};
|
|
7921
7944
|
break;
|
|
7922
7945
|
// … thêm MCC, GRIDBUFFER, etc nếu cần
|
|
@@ -8291,7 +8314,7 @@ class CoreFormDesignService {
|
|
|
8291
8314
|
// 🧠 Runtime init
|
|
8292
8315
|
switch (control.controlType) {
|
|
8293
8316
|
case EnumFormBaseContolType.DATEPICKER:
|
|
8294
|
-
control.value = new Date();
|
|
8317
|
+
//control.value = new Date();
|
|
8295
8318
|
// control.rangeLimit = {
|
|
8296
8319
|
// minDate: new Date(1900, 1, 1),
|
|
8297
8320
|
// maxDate: new Date(9999, 12, 31)
|
|
@@ -9935,6 +9958,58 @@ class CoreDatetimeService {
|
|
|
9935
9958
|
return `${year}-${month}`;
|
|
9936
9959
|
}
|
|
9937
9960
|
}
|
|
9961
|
+
/**
|
|
9962
|
+
* Interprets a Date as a civil calendar date in a specific IANA timezone.
|
|
9963
|
+
*
|
|
9964
|
+
* Purpose:
|
|
9965
|
+
* - Given an absolute instant (JavaScript Date),
|
|
9966
|
+
* re-interpret it as a calendar date (YYYY-MM-DD)
|
|
9967
|
+
* as perceived in the provided IANA timezone.
|
|
9968
|
+
*
|
|
9969
|
+
* What this function DOES:
|
|
9970
|
+
* - Uses Intl.DateTimeFormat with `timeZone` to extract
|
|
9971
|
+
* year / month / day in the target timezone.
|
|
9972
|
+
* - Re-materializes a new Date using those calendar parts
|
|
9973
|
+
* in the browser's local runtime timezone.
|
|
9974
|
+
*
|
|
9975
|
+
* What this function DOES NOT do:
|
|
9976
|
+
* - Does NOT apply business rules (e.g. start-of-day / end-of-day).
|
|
9977
|
+
* - Does NOT modify hours, minutes, seconds explicitly.
|
|
9978
|
+
* - Does NOT depend on range semantics (start / inclusive-end).
|
|
9979
|
+
* - Does NOT mutate the input Date.
|
|
9980
|
+
*
|
|
9981
|
+
* Design notes:
|
|
9982
|
+
* - JavaScript Date always represents an absolute instant.
|
|
9983
|
+
* - "Date-only" values in business forms are civil concepts,
|
|
9984
|
+
* not instants in time.
|
|
9985
|
+
* - Timezone interpretation MUST be applied exactly once,
|
|
9986
|
+
* at form boundaries (e.g. writeValue / onChange).
|
|
9987
|
+
*
|
|
9988
|
+
* Usage constraints:
|
|
9989
|
+
* - This function is intended for form-layer normalization only.
|
|
9990
|
+
* - It MUST be optional and backward-compatible.
|
|
9991
|
+
* - Absence of timezone context MUST preserve legacy behavior.
|
|
9992
|
+
*
|
|
9993
|
+
* @param date Absolute Date (instant)
|
|
9994
|
+
* @param timezoneId IANA Time Zone ID (e.g. "Asia/Ho_Chi_Minh")
|
|
9995
|
+
* @returns Date representing the same civil day in local runtime timezone
|
|
9996
|
+
*/
|
|
9997
|
+
interpretDateInTimezone(date, timezoneId) {
|
|
9998
|
+
// Interpret date into calendar parts in the given IANA timezone
|
|
9999
|
+
const parts = new Intl.DateTimeFormat('en-CA', {
|
|
10000
|
+
timeZone: timezoneId,
|
|
10001
|
+
year: 'numeric',
|
|
10002
|
+
month: '2-digit',
|
|
10003
|
+
day: '2-digit'
|
|
10004
|
+
}).formatToParts(date);
|
|
10005
|
+
const get = (type) => Number(parts.find(p => p.type === type)?.value);
|
|
10006
|
+
const year = get('year');
|
|
10007
|
+
const month = get('month') - 1; // JS month is 0-based
|
|
10008
|
+
const day = get('day');
|
|
10009
|
+
// Re-materialize as LOCAL Date
|
|
10010
|
+
// (Browser runtime timezone applies here)
|
|
10011
|
+
return new Date(year, month, day);
|
|
10012
|
+
}
|
|
9938
10013
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDatetimeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9939
10014
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDatetimeService, providedIn: 'root' }); }
|
|
9940
10015
|
}
|
|
@@ -17337,17 +17412,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
17337
17412
|
|
|
17338
17413
|
*/
|
|
17339
17414
|
class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
17340
|
-
constructor(renderer, domService, coreDatetimeService, mls, alertService) {
|
|
17415
|
+
constructor(renderer, domService, coreDatetimeService, mls, alertService, acs) {
|
|
17341
17416
|
super();
|
|
17342
17417
|
this.renderer = renderer;
|
|
17343
17418
|
this.domService = domService;
|
|
17344
17419
|
this.coreDatetimeService = coreDatetimeService;
|
|
17345
17420
|
this.mls = mls;
|
|
17346
17421
|
this.alertService = alertService;
|
|
17422
|
+
this.acs = acs;
|
|
17347
17423
|
this.showPlaceholder = false;
|
|
17348
17424
|
this.popupWidth = 300;
|
|
17349
17425
|
this.popupXPadding = 12;
|
|
17350
17426
|
this.placeholder = '';
|
|
17427
|
+
this.$rangePoint = input(undefined);
|
|
17428
|
+
/**
|
|
17429
|
+
* Timezone context (IANA) resolved from the parent form.
|
|
17430
|
+
*
|
|
17431
|
+
* Convention:
|
|
17432
|
+
* - If a business form operates under a timezone context,
|
|
17433
|
+
* the field representing that context MUST be named `timezoneId`
|
|
17434
|
+
* and MUST contain a valid IANA Time Zone ID
|
|
17435
|
+
* (e.g. "Asia/Ho_Chi_Minh").
|
|
17436
|
+
*
|
|
17437
|
+
* Design notes:
|
|
17438
|
+
* - This value is READ-ONLY and OPTIONAL.
|
|
17439
|
+
* - It is used exclusively for time normalization at form boundaries
|
|
17440
|
+
* (writeValue / onChange).
|
|
17441
|
+
* - The absence of `timezoneId` MUST preserve legacy behavior.
|
|
17442
|
+
*
|
|
17443
|
+
* DO NOT:
|
|
17444
|
+
* - Mutate this value.
|
|
17445
|
+
* - Assume the field always exists.
|
|
17446
|
+
* - Use it to alter UI rendering logic.
|
|
17447
|
+
*/
|
|
17448
|
+
this.$timezoneId = computed(() => this.ngControl?.control?.parent?.value?.timezoneId ?? null);
|
|
17351
17449
|
this.cdr = inject(ChangeDetectorRef);
|
|
17352
17450
|
this.hasError = false;
|
|
17353
17451
|
this.subscriptions = [];
|
|
@@ -17370,26 +17468,35 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17370
17468
|
}
|
|
17371
17469
|
ngOnInit() {
|
|
17372
17470
|
super.register();
|
|
17373
|
-
this.newDate = !!this.rangeLimit ? this.rangeLimit.minDate : new Date();
|
|
17471
|
+
// this.newDate = !!this.rangeLimit ? this.rangeLimit.minDate : new Date();
|
|
17472
|
+
// this.currentMonthObject$ = new BehaviorSubject<IMonthIdentity>({
|
|
17473
|
+
// year: this.value?.getFullYear() || this.newDate.getFullYear(),
|
|
17474
|
+
// monthIndex: this.value?.getMonth() || this.newDate.getMonth()
|
|
17475
|
+
// });
|
|
17476
|
+
// UI anchor ONLY – tuyệt đối không suy đoán form value
|
|
17477
|
+
const anchor = this.rangeLimit?.minDate
|
|
17478
|
+
?? new Date(new Date().getFullYear(), new Date().getMonth(), 1);
|
|
17374
17479
|
this.currentMonthObject$ = new BehaviorSubject({
|
|
17375
|
-
year:
|
|
17376
|
-
monthIndex:
|
|
17480
|
+
year: anchor.getFullYear(),
|
|
17481
|
+
monthIndex: anchor.getMonth()
|
|
17377
17482
|
});
|
|
17378
17483
|
if (!!this.disabled)
|
|
17379
17484
|
this.readonly = true;
|
|
17380
|
-
if (!!!this.value) {
|
|
17381
|
-
|
|
17382
|
-
|
|
17383
|
-
}
|
|
17384
|
-
|
|
17385
|
-
|
|
17386
|
-
|
|
17387
|
-
|
|
17388
|
-
|
|
17389
|
-
|
|
17390
|
-
|
|
17391
|
-
|
|
17392
|
-
|
|
17485
|
+
// if (!!!this.value) {
|
|
17486
|
+
// //this.value = this.newDate;
|
|
17487
|
+
// this.lastText = ""
|
|
17488
|
+
// } else {
|
|
17489
|
+
// this.pendingYear = this.value.getFullYear();
|
|
17490
|
+
// this.pendingMonthIndex = this.value.getMonth();
|
|
17491
|
+
// this.pendingDay = this.value.getDate();
|
|
17492
|
+
// this.currentHours = this.value.getHours();
|
|
17493
|
+
// this.currentMinutes = this.value.getMinutes();
|
|
17494
|
+
// this.currentSeconds = this.value.getSeconds();
|
|
17495
|
+
// this.currentMilliseconds = this.value.getMilliseconds();
|
|
17496
|
+
// }
|
|
17497
|
+
// ❗ KHÔNG đọc this.value ở đây
|
|
17498
|
+
// writeValue sẽ chịu trách nhiệm set toàn bộ state liên quan tới value
|
|
17499
|
+
this.lastText = '';
|
|
17393
17500
|
this.subscriptions.push(this.mls.lang$.subscribe(x => this.lang = x));
|
|
17394
17501
|
/*
|
|
17395
17502
|
if (!!!this.id) {
|
|
@@ -17513,7 +17620,8 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17513
17620
|
const date = new Date(Number(digits[2]), Number(digits[1]) - 1, Number(digits[0]), hr, mn, sd, ms);
|
|
17514
17621
|
event.target.value = this.coreDatetimeService.dateToVnString(date);
|
|
17515
17622
|
this.markAsTouched();
|
|
17516
|
-
this.onChange(date);
|
|
17623
|
+
//this.onChange(date);
|
|
17624
|
+
this.onChange(this.applyRangePoint(date));
|
|
17517
17625
|
this.enrichment.register(this.form, this.fieldName, this.textValue);
|
|
17518
17626
|
}
|
|
17519
17627
|
else {
|
|
@@ -17524,30 +17632,149 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17524
17632
|
}
|
|
17525
17633
|
});
|
|
17526
17634
|
}
|
|
17635
|
+
// override writeValue(input: Date | string | null | undefined): void {
|
|
17636
|
+
// console.log("UTC input ", input);
|
|
17637
|
+
//let obj: any = new Date();
|
|
17638
|
+
// if (input === null) {
|
|
17639
|
+
// this.value = null
|
|
17640
|
+
// this.textValue = '';
|
|
17641
|
+
// this.enrichment.register(this.form, this.fieldName, "");
|
|
17642
|
+
// return;
|
|
17643
|
+
// } else if (typeof (input) === 'string') {
|
|
17644
|
+
// if (input === "") {
|
|
17645
|
+
// obj = null;
|
|
17646
|
+
// } else {
|
|
17647
|
+
// obj = new Date(new Date(input).setHours(0, 0, 0, 0));
|
|
17648
|
+
// }
|
|
17649
|
+
// } else if (input !== null && typeof (input?.getFullYear) === "function") {
|
|
17650
|
+
// obj = input
|
|
17651
|
+
// } else {
|
|
17652
|
+
// console.error("Invalid date input")
|
|
17653
|
+
// return
|
|
17654
|
+
// }
|
|
17655
|
+
// const updateProperties = (value: Date) => {
|
|
17656
|
+
// console.log("After convert to Local Date ", value);
|
|
17657
|
+
// this.value = value;
|
|
17658
|
+
// this.lastText = this.coreDatetimeService.dateToVnString(value)
|
|
17659
|
+
// this.textValue = this.coreDatetimeService.dateToVnString(value);
|
|
17660
|
+
// this.enrichment.register(this.form, this.fieldName, this.textValue);
|
|
17661
|
+
// this.currentMonthObject$.next({
|
|
17662
|
+
// year: value.getFullYear(),
|
|
17663
|
+
// monthIndex: value.getMonth()
|
|
17664
|
+
// })
|
|
17665
|
+
// this.currentHours = value.getHours();
|
|
17666
|
+
// this.currentMinutes = value.getMinutes();
|
|
17667
|
+
// this.currentSeconds = value.getSeconds();
|
|
17668
|
+
// this.currentMilliseconds = value.getMilliseconds();
|
|
17669
|
+
// this.currentMonthText = this.coreDatetimeService.getMonthText(this.lang, this.currentMonthObject$.value.monthIndex);
|
|
17670
|
+
// this.pendingYear = value.getFullYear();
|
|
17671
|
+
// this.pendingMonthIndex = value.getMonth();
|
|
17672
|
+
// this.pendingDay = value.getDate();
|
|
17673
|
+
// }
|
|
17674
|
+
// if (obj === null || obj === undefined) {
|
|
17675
|
+
/*
|
|
17676
|
+
let now = new Date();
|
|
17677
|
+
if (!!this.rangeLimit) {
|
|
17678
|
+
now = this.rangeLimit.minDate;
|
|
17679
|
+
}
|
|
17680
|
+
this.textValue = '';
|
|
17681
|
+
this.enrichment.register(this.form, this.fieldName, "");
|
|
17682
|
+
this.currentMonthObject$.next({
|
|
17683
|
+
year: now.getFullYear(),
|
|
17684
|
+
monthIndex: now.getMonth()
|
|
17685
|
+
})
|
|
17686
|
+
this.currentHours = now.getHours();
|
|
17687
|
+
this.currentMinutes = now.getMinutes();
|
|
17688
|
+
this.currentSeconds = now.getSeconds();
|
|
17689
|
+
this.currentMilliseconds = now.getMilliseconds();
|
|
17690
|
+
this.currentMonthText = this.coreDatetimeService.getMonthText(this.lang, this.currentMonthObject$.value.monthIndex);
|
|
17691
|
+
*/
|
|
17692
|
+
// UI anchor only – do NOT create a Date value
|
|
17693
|
+
// const anchor = this.rangeLimit?.minDate
|
|
17694
|
+
// ?? new Date(new Date().getFullYear(), new Date().getMonth(), 1);
|
|
17695
|
+
// this.value = null;
|
|
17696
|
+
// this.textValue = '';
|
|
17697
|
+
// this.lastText = '';
|
|
17698
|
+
// this.enrichment.register(this.form, this.fieldName, "");
|
|
17699
|
+
// this.currentMonthObject$.next({
|
|
17700
|
+
// year: anchor.getFullYear(),
|
|
17701
|
+
// monthIndex: anchor.getMonth()
|
|
17702
|
+
// });
|
|
17703
|
+
// // ⛔ DO NOT set hours / minutes / seconds here
|
|
17704
|
+
// return;
|
|
17705
|
+
// } else {
|
|
17706
|
+
/* Convert UTC date to local date */
|
|
17707
|
+
// const originalDate: Date = new Date(obj);
|
|
17708
|
+
// const offset = (new Date()).getTimezoneOffset();
|
|
17709
|
+
// const dateValue = new Date(originalDate.getTime() - offset * 60000);
|
|
17710
|
+
/*--------------------------------------*/
|
|
17711
|
+
// NOTE:
|
|
17712
|
+
// JavaScript Date is already timezone-aware (runtime-based).
|
|
17713
|
+
// Do NOT manually apply timezone offsets here.
|
|
17714
|
+
// Manual offset adjustment causes date shifting near day boundaries.
|
|
17715
|
+
// Trước khi gọt timezone → nó là raw interpreted date
|
|
17716
|
+
// Sau khi gọt timezone → nó là UI Date
|
|
17717
|
+
// let dateValue = obj instanceof Date ? obj : new Date(obj);
|
|
17718
|
+
// // 🔒 Use timezone context ONLY ONCE, at form boundary
|
|
17719
|
+
// const tz = this.$timezoneId();
|
|
17720
|
+
// if (tz) {
|
|
17721
|
+
// dateValue = this.coreDatetimeService.interpretDateInTimezone(
|
|
17722
|
+
// dateValue,
|
|
17723
|
+
// tz
|
|
17724
|
+
// );
|
|
17725
|
+
// }
|
|
17726
|
+
// if (typeof obj!.getFullYear === 'function') {
|
|
17727
|
+
// updateProperties(dateValue);
|
|
17728
|
+
// } else if (typeof obj === 'string') {
|
|
17729
|
+
// const isDate = this.coreDatetimeService.isDateString(obj);
|
|
17730
|
+
// if (isDate) {
|
|
17731
|
+
// //const _obj = new Date(obj); // convert string to date
|
|
17732
|
+
// updateProperties(dateValue);
|
|
17733
|
+
// } else {
|
|
17734
|
+
// console.error("Invalid date input: ", obj);
|
|
17735
|
+
// }
|
|
17736
|
+
// } else {
|
|
17737
|
+
// console.error("Invalid date input: ", obj);
|
|
17738
|
+
// }
|
|
17739
|
+
// }
|
|
17740
|
+
// }
|
|
17527
17741
|
writeValue(input) {
|
|
17528
17742
|
console.log("UTC input ", input);
|
|
17529
|
-
|
|
17530
|
-
if (input === null) {
|
|
17743
|
+
// 1️⃣ Null = no intent → UI anchor only
|
|
17744
|
+
if (input === null || input === undefined || input === "") {
|
|
17745
|
+
const anchor = this.rangeLimit?.minDate
|
|
17746
|
+
?? new Date(new Date().getFullYear(), new Date().getMonth(), 1);
|
|
17531
17747
|
this.value = null;
|
|
17532
17748
|
this.textValue = '';
|
|
17749
|
+
this.lastText = '';
|
|
17533
17750
|
this.enrichment.register(this.form, this.fieldName, "");
|
|
17751
|
+
this.currentMonthObject$.next({
|
|
17752
|
+
year: anchor.getFullYear(),
|
|
17753
|
+
monthIndex: anchor.getMonth()
|
|
17754
|
+
});
|
|
17534
17755
|
return;
|
|
17535
17756
|
}
|
|
17536
|
-
|
|
17537
|
-
|
|
17538
|
-
|
|
17539
|
-
|
|
17540
|
-
else {
|
|
17541
|
-
obj = new Date(new Date(input).setHours(0, 0, 0, 0));
|
|
17542
|
-
}
|
|
17757
|
+
// 2️⃣ Normalize input to Date (intent exists)
|
|
17758
|
+
let dateValue;
|
|
17759
|
+
if (input instanceof Date) {
|
|
17760
|
+
dateValue = input;
|
|
17543
17761
|
}
|
|
17544
|
-
else if (
|
|
17545
|
-
|
|
17762
|
+
else if (typeof input === 'string') {
|
|
17763
|
+
if (!this.coreDatetimeService.isDateString(input)) {
|
|
17764
|
+
console.error("Invalid date input: ", input);
|
|
17765
|
+
return;
|
|
17766
|
+
}
|
|
17767
|
+
dateValue = new Date(input);
|
|
17546
17768
|
}
|
|
17547
17769
|
else {
|
|
17548
17770
|
console.error("Invalid date input");
|
|
17549
17771
|
return;
|
|
17550
17772
|
}
|
|
17773
|
+
// 3️⃣ Apply timezone context ONCE (boundary)
|
|
17774
|
+
const tz = this.$timezoneId();
|
|
17775
|
+
if (tz) {
|
|
17776
|
+
dateValue = this.coreDatetimeService.interpretDateInTimezone(dateValue, tz);
|
|
17777
|
+
}
|
|
17551
17778
|
const updateProperties = (value) => {
|
|
17552
17779
|
console.log("After convert to Local Date ", value);
|
|
17553
17780
|
this.value = value;
|
|
@@ -17567,46 +17794,8 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17567
17794
|
this.pendingMonthIndex = value.getMonth();
|
|
17568
17795
|
this.pendingDay = value.getDate();
|
|
17569
17796
|
};
|
|
17570
|
-
|
|
17571
|
-
|
|
17572
|
-
if (!!this.rangeLimit) {
|
|
17573
|
-
now = this.rangeLimit.minDate;
|
|
17574
|
-
}
|
|
17575
|
-
this.textValue = '';
|
|
17576
|
-
this.enrichment.register(this.form, this.fieldName, "");
|
|
17577
|
-
this.currentMonthObject$.next({
|
|
17578
|
-
year: now.getFullYear(),
|
|
17579
|
-
monthIndex: now.getMonth()
|
|
17580
|
-
});
|
|
17581
|
-
this.currentHours = now.getHours();
|
|
17582
|
-
this.currentMinutes = now.getMinutes();
|
|
17583
|
-
this.currentSeconds = now.getSeconds();
|
|
17584
|
-
this.currentMilliseconds = now.getMilliseconds();
|
|
17585
|
-
this.currentMonthText = this.coreDatetimeService.getMonthText(this.lang, this.currentMonthObject$.value.monthIndex);
|
|
17586
|
-
}
|
|
17587
|
-
else {
|
|
17588
|
-
/* Convert UTC date to local date */
|
|
17589
|
-
const originalDate = new Date(obj);
|
|
17590
|
-
const offset = (new Date()).getTimezoneOffset();
|
|
17591
|
-
const dateValue = new Date(originalDate.getTime() - offset * 60000);
|
|
17592
|
-
/*--------------------------------------*/
|
|
17593
|
-
if (typeof obj.getFullYear === 'function') {
|
|
17594
|
-
updateProperties(dateValue);
|
|
17595
|
-
}
|
|
17596
|
-
else if (typeof obj === 'string') {
|
|
17597
|
-
const isDate = this.coreDatetimeService.isDateString(obj);
|
|
17598
|
-
if (isDate) {
|
|
17599
|
-
//const _obj = new Date(obj); // convert string to date
|
|
17600
|
-
updateProperties(dateValue);
|
|
17601
|
-
}
|
|
17602
|
-
else {
|
|
17603
|
-
console.error("Invalid date input: ", obj);
|
|
17604
|
-
}
|
|
17605
|
-
}
|
|
17606
|
-
else {
|
|
17607
|
-
console.error("Invalid date input: ", obj);
|
|
17608
|
-
}
|
|
17609
|
-
}
|
|
17797
|
+
// 4️⃣ Sync UI from real Date
|
|
17798
|
+
updateProperties(dateValue);
|
|
17610
17799
|
}
|
|
17611
17800
|
onItemClick(date) {
|
|
17612
17801
|
if (this.readonly)
|
|
@@ -17629,7 +17818,8 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17629
17818
|
this.pendingMonthIndex = date.getMonth();
|
|
17630
17819
|
this.pendingDay = date.getDate();
|
|
17631
17820
|
this.markAsTouched();
|
|
17632
|
-
this.onChange(date);
|
|
17821
|
+
//this.onChange(date);
|
|
17822
|
+
this.onChange(this.applyRangePoint(date));
|
|
17633
17823
|
this.enrichment.register(this.form, this.fieldName, this.textValue);
|
|
17634
17824
|
this.hasError = false;
|
|
17635
17825
|
this.openState = false;
|
|
@@ -17642,7 +17832,8 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17642
17832
|
}
|
|
17643
17833
|
this.textValue = this.coreDatetimeService.dateToVnString(today);
|
|
17644
17834
|
this.markAsTouched();
|
|
17645
|
-
this.onChange(today);
|
|
17835
|
+
//this.onChange(today);
|
|
17836
|
+
this.onChange(this.applyRangePoint(today));
|
|
17646
17837
|
this.enrichment.register(this.form, this.fieldName, this.textValue);
|
|
17647
17838
|
this.openState = false;
|
|
17648
17839
|
}
|
|
@@ -17767,12 +17958,25 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17767
17958
|
// this.hasError = false;
|
|
17768
17959
|
}
|
|
17769
17960
|
}
|
|
17770
|
-
|
|
17771
|
-
|
|
17961
|
+
applyRangePoint(date) {
|
|
17962
|
+
const rp = this.$rangePoint();
|
|
17963
|
+
if (!rp)
|
|
17964
|
+
return date; // legacy behavior
|
|
17965
|
+
const d = new Date(date);
|
|
17966
|
+
if (rp === 'start') {
|
|
17967
|
+
d.setHours(0, 0, 0, 0);
|
|
17968
|
+
}
|
|
17969
|
+
if (rp === 'inclusive-end') {
|
|
17970
|
+
d.setHours(23, 59, 59, 999);
|
|
17971
|
+
}
|
|
17972
|
+
return d;
|
|
17973
|
+
}
|
|
17974
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDatePickerComponent, deps: [{ token: i0.Renderer2 }, { token: DomService }, { token: CoreDatetimeService }, { token: MultiLanguageService }, { token: AlertService }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17975
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreDatePickerComponent, isStandalone: true, selector: "core-date-picker", inputs: { enableTimeZoneConverter: { classPropertyName: "enableTimeZoneConverter", publicName: "enableTimeZoneConverter", isSignal: false, isRequired: false, transformFunction: null }, showPlaceholder: { classPropertyName: "showPlaceholder", publicName: "showPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, popupWidth: { classPropertyName: "popupWidth", publicName: "popupWidth", isSignal: false, isRequired: false, transformFunction: null }, popupXPadding: { classPropertyName: "popupXPadding", publicName: "popupXPadding", isSignal: false, isRequired: false, transformFunction: null }, popupAlign: { classPropertyName: "popupAlign", publicName: "popupAlign", isSignal: false, isRequired: false, transformFunction: null }, rangeLimit: { classPropertyName: "rangeLimit", publicName: "rangeLimit", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, $rangePoint: { classPropertyName: "$rangePoint", publicName: "$rangePoint", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:keydown.escape": "onEscapePressed($event)" } }, providers: [
|
|
17772
17976
|
{
|
|
17773
17977
|
provide: NG_VALUE_ACCESSOR,
|
|
17774
17978
|
multi: true,
|
|
17775
|
-
useExisting: CoreDatePickerComponent
|
|
17979
|
+
useExisting: forwardRef(() => CoreDatePickerComponent)
|
|
17776
17980
|
}
|
|
17777
17981
|
], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "backward", first: true, predicate: ["backward"], descendants: true }, { propertyName: "calendarBody", first: true, predicate: ["calendarBody"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-date-picker-container\">\r\n <input type=\"checkbox\" [(ngModel)]=\"openState\">\r\n <input type=\"checkbox\" [(ngModel)]=\"monthPickerActive\">\r\n <input type=\"checkbox\" [(ngModel)]=\"yearPickerActive\">\r\n <input #backward type=\"checkbox\" class=\"tl-datepicker-direction\">\r\n\r\n <div class=\"p-relative\">\r\n <input #input type=\"text\" class=\"form-control\" [placeholder]=\"showPlaceholder ? (placeholder || 'dd/mm/yyyy') : ''\"\r\n maxlength=\"10\" [(ngModel)]=\"textValue\" [class.form-control-disabled]=\"disabled\" [disabled]=\"disabled\" [class.has-error]=\"hasError\" (blur)=\"onBlur($event)\"\r\n [class.required-highlight]=\"!!required\">\r\n\r\n <!-- <label class=\"icon\" (click)=\"toggleOpen()\"></label> -->\r\n\r\n <div class=\"calendar-icon-wrapper\" [class.form-control-disabled]=\"disabled\"\r\n (click)=\"toggleOpen()\">\r\n <div class=\"flex-wrapper\" [class.form-control-disabled]=\"disabled\">\r\n <i class=\"feather-calendar\"></i>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"tl-date-picker-popup\" [class.open]=\"openState\" [ngStyle]=\"{\r\n left: (!popupAlign || popupAlign === 'left') ? '0px' : 'auto',\r\n right: (popupAlign === 'right') ? '0px' : 'auto',\r\n }\">\r\n <div class=\"date-picker-session\" [class.d-none]=\"monthPickerActive || yearPickerActive\">\r\n <div class=\"navigator\">\r\n <label class=\"month-dropdown\" (click)=\"toggleMonthPickerActive()\">{{ currentMonthText }} {{\r\n currentMonthObject$.value.year }}</label>\r\n <div class=\"arrows\">\r\n <div class=\"go-up\" (click)=\"goBackward()\"></div>\r\n <div class=\"go-down\" (click)=\"goForeward()\"></div>\r\n </div>\r\n </div>\r\n <div class=\"weekday-header\">\r\n <ul>\r\n @for (day of headerWeekdays; track $index) {\r\n <li [class.t7]=\"$index===5\" [class.cn]=\"$index===6\">\r\n <div>{{ day }}</div>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n <div class=\"calendar-body-container\">\r\n <div #calendarBody class=\"calendar-body\" [class.slide-up]=\"direction===1\"\r\n [class.slide-down]=\"direction===-1\">\r\n @for (week of data; track $index) {\r\n <ul>\r\n @for (item of week.items; track $index) {\r\n <li [appTooltip]=\"item.dateValue.toLocaleDateString()\" [showAnyway]=\"isDevMode\">\r\n <div [class.out-of-month]=\"!!!item.currentMonth\" [class.t7]=\"$index===5\"\r\n [class.cn]=\"$index===6\"\r\n [class.out-of-range]=\"!!rangeLimit && !!!((item.dateValue>=rangeLimit.minDate) && (rangeLimit.maxDate>=item.dateValue))\"\r\n [class.active]=\"item.dateValue.getFullYear()===pendingYear && item.dateValue.getMonth()===pendingMonthIndex && item.dateValue.getDate()===pendingDay\"\r\n (click)=\"onItemClick(item.dateValue)\">\r\n {{ item.date }}</div>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"month-picker-session\" [class.active]=\"monthPickerActive\">\r\n <core-month-picker [lang]=\"lang\" [monthObject$]=\"currentMonthObject$\"\r\n (onChange)=\"onMonthObjectChange($event)\"\r\n (onYearClick)=\"onMonthPickerYearClick($event)\"></core-month-picker>\r\n </div>\r\n <div class=\"year-picker-session\" [class.active]=\"yearPickerActive\">\r\n <core-year-picker [lang]=\"lang\" (onChange)=\"onYearPicked($event)\"></core-year-picker>\r\n </div>\r\n <div class=\"footer-wrapper\">\r\n <div class=\"cdp-footer\">\r\n <div class=\"clear\" [class.opacity-0]=\"!!!textValue\" (click)=\"clear()\">{{ 'UI.CORE_DATE_PICKER_CLEAR' |\r\n translate: lang }}</div>\r\n <div class=\"digi-watch\"></div>\r\n <div class=\"today\" (click)=\"goToday()\">{{ 'UI.CORE_DATE_PICKER_TODAY' | translate: lang }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".core-date-picker-container{--indicator-height: 39px;--popup-z-index: 99999999;--popup-width: 300px;--popup-height: 400px;--popup-bg-color: white;--popup-x-padding: 12px;--cell-size: 0px;--arrow-font-size: 28px;--font-size: 13px;--font-bold: 700;--font-light: 400;--hover-bg-color: #E6EBED;--active-bg-color: cadetblue;--error-text: \"\";--scroll-distance: calc(var(--cell-size) * 6);position:relative;font-weight:var(--font-light);font-size:var(--font-size)}.core-date-picker-container input[type=checkbox]{display:none}.core-date-picker-container input.has-error{color:#ef2b58}.core-date-picker-container .calendar-icon-wrapper{display:block;position:absolute;background-color:#fff;border:1px solid #ced4da;right:0;top:0;width:35px;height:35px;font-size:14.18px;color:#848484;cursor:pointer}.core-date-picker-container .calendar-icon-wrapper>.flex-wrapper{width:33px;height:33px;display:flex;align-items:center;justify-content:center}.core-date-picker-container .calendar-icon-wrapper>.flex-wrapper>i.close-icon{color:#848484;font-size:20px}.core-date-picker-container .tl-date-picker-popup{position:absolute;overflow:hidden;z-index:var(--popup-z-index);width:var(--popup-width);height:var(--popup-height);background-color:var(--popup-bg-color);box-shadow:var(--decoration-box-shadow);border-radius:3px;padding:0 12px;display:none}.core-date-picker-container .tl-date-picker-popup.open{display:block}.core-date-picker-container .month-picker-session,.core-date-picker-container .year-picker-session{display:none}.core-date-picker-container .month-picker-session.active,.core-date-picker-container .year-picker-session.active{display:block}.core-date-picker-container .date-picker-session.d-none{display:none}.core-date-picker-container .navigator{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .month-dropdown{font-weight:var(--font-bold);cursor:pointer}.core-date-picker-container .arrows{display:flex;align-items:center;justify-content:flex-end}.core-date-picker-container .arrows>div{margin:0 2px}.core-date-picker-container .arrows>div:before{font-family:feather;font-size:var(--arrow-font-size);cursor:pointer}.core-date-picker-container .arrows>div:hover:before{background-color:var(--hover-bg-color)}.core-date-picker-container .go-up:before{content:\"\\e914\"}.core-date-picker-container .go-down:before{content:\"\\e90c\"}.core-date-picker-container ul{padding:0;margin:0}.core-date-picker-container ul{height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7)}.core-date-picker-container ul>li{user-select:none;-webkit-user-select:none;position:relative;display:inline-block!important;width:var(--cell-size);height:var(--cell-size);cursor:pointer}.core-date-picker-container .calendar-body-container{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7 * 6);position:absolute;z-index:1;background-color:var(--popup-bg-color);overflow:hidden}.core-date-picker-container .calendar-body>ul>li>div:hover{background-color:var(--hover-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.active{background-color:var(--active-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.out-of-month{color:#d3d3d3}.core-date-picker-container .calendar-body>ul>li>div.out-of-range{-webkit-user-select:none;user-select:none;cursor:default;opacity:.2!important}.core-date-picker-container .calendar-body>ul>li>div.out-of-range:hover{background-color:var(--popup-bg-color)}.core-date-picker-container ul>li>div{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7);display:flex;align-items:center;justify-content:center;border-radius:5px}.core-date-picker-container .t7{color:#07b7ee}.core-date-picker-container .cn{color:#ef2b58}.core-date-picker-container .weekday-header{font-weight:var(--font-bold)}.core-date-picker-container .calendar-body{position:absolute;bottom:0}.core-date-picker-container .tl-datepicker-direction:checked~.tl-date-picker-popup>.calendar-body-container>.calendar-body{top:0}.core-date-picker-container .slide-up{animation:slide-up .25s linear}.core-date-picker-container .slide-down{transform:translateY(var(--scroll-distance));animation:slide-down .25s linear}.core-date-picker-container .footer-wrapper{width:calc(var(--popup-width) - var(--popup-x-padding) * 2);position:absolute;bottom:var(--popup-x-padding);left:var(--popup-x-padding);background-color:var(--popup-bg-color)!important}.core-date-picker-container .cdp-footer{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .today,.core-date-picker-container .clear{width:30%;height:var(--cell-size);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.core-date-picker-container .today{background-color:#f37540}.core-date-picker-container .clear{background-color:brown}@keyframes slide-down{0%{top:calc(var(--scroll-distance) * -1)}to{top:0}}@keyframes slide-up{0%{top:0}to{top:calc(var(--scroll-distance) * -1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreYearPickerComponent, selector: "core-year-picker", inputs: ["id", "default"], outputs: ["onChange"] }, { kind: "component", type: CoreMonthPickerComponent, selector: "core-month-picker", inputs: ["id", "lang", "monthObject$"], outputs: ["onChange", "onYearClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }] }); }
|
|
17778
17982
|
}
|
|
@@ -17789,10 +17993,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
17789
17993
|
{
|
|
17790
17994
|
provide: NG_VALUE_ACCESSOR,
|
|
17791
17995
|
multi: true,
|
|
17792
|
-
useExisting: CoreDatePickerComponent
|
|
17996
|
+
useExisting: forwardRef(() => CoreDatePickerComponent)
|
|
17793
17997
|
}
|
|
17794
17998
|
], template: "<div #container class=\"core-date-picker-container\">\r\n <input type=\"checkbox\" [(ngModel)]=\"openState\">\r\n <input type=\"checkbox\" [(ngModel)]=\"monthPickerActive\">\r\n <input type=\"checkbox\" [(ngModel)]=\"yearPickerActive\">\r\n <input #backward type=\"checkbox\" class=\"tl-datepicker-direction\">\r\n\r\n <div class=\"p-relative\">\r\n <input #input type=\"text\" class=\"form-control\" [placeholder]=\"showPlaceholder ? (placeholder || 'dd/mm/yyyy') : ''\"\r\n maxlength=\"10\" [(ngModel)]=\"textValue\" [class.form-control-disabled]=\"disabled\" [disabled]=\"disabled\" [class.has-error]=\"hasError\" (blur)=\"onBlur($event)\"\r\n [class.required-highlight]=\"!!required\">\r\n\r\n <!-- <label class=\"icon\" (click)=\"toggleOpen()\"></label> -->\r\n\r\n <div class=\"calendar-icon-wrapper\" [class.form-control-disabled]=\"disabled\"\r\n (click)=\"toggleOpen()\">\r\n <div class=\"flex-wrapper\" [class.form-control-disabled]=\"disabled\">\r\n <i class=\"feather-calendar\"></i>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"tl-date-picker-popup\" [class.open]=\"openState\" [ngStyle]=\"{\r\n left: (!popupAlign || popupAlign === 'left') ? '0px' : 'auto',\r\n right: (popupAlign === 'right') ? '0px' : 'auto',\r\n }\">\r\n <div class=\"date-picker-session\" [class.d-none]=\"monthPickerActive || yearPickerActive\">\r\n <div class=\"navigator\">\r\n <label class=\"month-dropdown\" (click)=\"toggleMonthPickerActive()\">{{ currentMonthText }} {{\r\n currentMonthObject$.value.year }}</label>\r\n <div class=\"arrows\">\r\n <div class=\"go-up\" (click)=\"goBackward()\"></div>\r\n <div class=\"go-down\" (click)=\"goForeward()\"></div>\r\n </div>\r\n </div>\r\n <div class=\"weekday-header\">\r\n <ul>\r\n @for (day of headerWeekdays; track $index) {\r\n <li [class.t7]=\"$index===5\" [class.cn]=\"$index===6\">\r\n <div>{{ day }}</div>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n <div class=\"calendar-body-container\">\r\n <div #calendarBody class=\"calendar-body\" [class.slide-up]=\"direction===1\"\r\n [class.slide-down]=\"direction===-1\">\r\n @for (week of data; track $index) {\r\n <ul>\r\n @for (item of week.items; track $index) {\r\n <li [appTooltip]=\"item.dateValue.toLocaleDateString()\" [showAnyway]=\"isDevMode\">\r\n <div [class.out-of-month]=\"!!!item.currentMonth\" [class.t7]=\"$index===5\"\r\n [class.cn]=\"$index===6\"\r\n [class.out-of-range]=\"!!rangeLimit && !!!((item.dateValue>=rangeLimit.minDate) && (rangeLimit.maxDate>=item.dateValue))\"\r\n [class.active]=\"item.dateValue.getFullYear()===pendingYear && item.dateValue.getMonth()===pendingMonthIndex && item.dateValue.getDate()===pendingDay\"\r\n (click)=\"onItemClick(item.dateValue)\">\r\n {{ item.date }}</div>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"month-picker-session\" [class.active]=\"monthPickerActive\">\r\n <core-month-picker [lang]=\"lang\" [monthObject$]=\"currentMonthObject$\"\r\n (onChange)=\"onMonthObjectChange($event)\"\r\n (onYearClick)=\"onMonthPickerYearClick($event)\"></core-month-picker>\r\n </div>\r\n <div class=\"year-picker-session\" [class.active]=\"yearPickerActive\">\r\n <core-year-picker [lang]=\"lang\" (onChange)=\"onYearPicked($event)\"></core-year-picker>\r\n </div>\r\n <div class=\"footer-wrapper\">\r\n <div class=\"cdp-footer\">\r\n <div class=\"clear\" [class.opacity-0]=\"!!!textValue\" (click)=\"clear()\">{{ 'UI.CORE_DATE_PICKER_CLEAR' |\r\n translate: lang }}</div>\r\n <div class=\"digi-watch\"></div>\r\n <div class=\"today\" (click)=\"goToday()\">{{ 'UI.CORE_DATE_PICKER_TODAY' | translate: lang }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".core-date-picker-container{--indicator-height: 39px;--popup-z-index: 99999999;--popup-width: 300px;--popup-height: 400px;--popup-bg-color: white;--popup-x-padding: 12px;--cell-size: 0px;--arrow-font-size: 28px;--font-size: 13px;--font-bold: 700;--font-light: 400;--hover-bg-color: #E6EBED;--active-bg-color: cadetblue;--error-text: \"\";--scroll-distance: calc(var(--cell-size) * 6);position:relative;font-weight:var(--font-light);font-size:var(--font-size)}.core-date-picker-container input[type=checkbox]{display:none}.core-date-picker-container input.has-error{color:#ef2b58}.core-date-picker-container .calendar-icon-wrapper{display:block;position:absolute;background-color:#fff;border:1px solid #ced4da;right:0;top:0;width:35px;height:35px;font-size:14.18px;color:#848484;cursor:pointer}.core-date-picker-container .calendar-icon-wrapper>.flex-wrapper{width:33px;height:33px;display:flex;align-items:center;justify-content:center}.core-date-picker-container .calendar-icon-wrapper>.flex-wrapper>i.close-icon{color:#848484;font-size:20px}.core-date-picker-container .tl-date-picker-popup{position:absolute;overflow:hidden;z-index:var(--popup-z-index);width:var(--popup-width);height:var(--popup-height);background-color:var(--popup-bg-color);box-shadow:var(--decoration-box-shadow);border-radius:3px;padding:0 12px;display:none}.core-date-picker-container .tl-date-picker-popup.open{display:block}.core-date-picker-container .month-picker-session,.core-date-picker-container .year-picker-session{display:none}.core-date-picker-container .month-picker-session.active,.core-date-picker-container .year-picker-session.active{display:block}.core-date-picker-container .date-picker-session.d-none{display:none}.core-date-picker-container .navigator{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .month-dropdown{font-weight:var(--font-bold);cursor:pointer}.core-date-picker-container .arrows{display:flex;align-items:center;justify-content:flex-end}.core-date-picker-container .arrows>div{margin:0 2px}.core-date-picker-container .arrows>div:before{font-family:feather;font-size:var(--arrow-font-size);cursor:pointer}.core-date-picker-container .arrows>div:hover:before{background-color:var(--hover-bg-color)}.core-date-picker-container .go-up:before{content:\"\\e914\"}.core-date-picker-container .go-down:before{content:\"\\e90c\"}.core-date-picker-container ul{padding:0;margin:0}.core-date-picker-container ul{height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7)}.core-date-picker-container ul>li{user-select:none;-webkit-user-select:none;position:relative;display:inline-block!important;width:var(--cell-size);height:var(--cell-size);cursor:pointer}.core-date-picker-container .calendar-body-container{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7 * 6);position:absolute;z-index:1;background-color:var(--popup-bg-color);overflow:hidden}.core-date-picker-container .calendar-body>ul>li>div:hover{background-color:var(--hover-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.active{background-color:var(--active-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.out-of-month{color:#d3d3d3}.core-date-picker-container .calendar-body>ul>li>div.out-of-range{-webkit-user-select:none;user-select:none;cursor:default;opacity:.2!important}.core-date-picker-container .calendar-body>ul>li>div.out-of-range:hover{background-color:var(--popup-bg-color)}.core-date-picker-container ul>li>div{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7);display:flex;align-items:center;justify-content:center;border-radius:5px}.core-date-picker-container .t7{color:#07b7ee}.core-date-picker-container .cn{color:#ef2b58}.core-date-picker-container .weekday-header{font-weight:var(--font-bold)}.core-date-picker-container .calendar-body{position:absolute;bottom:0}.core-date-picker-container .tl-datepicker-direction:checked~.tl-date-picker-popup>.calendar-body-container>.calendar-body{top:0}.core-date-picker-container .slide-up{animation:slide-up .25s linear}.core-date-picker-container .slide-down{transform:translateY(var(--scroll-distance));animation:slide-down .25s linear}.core-date-picker-container .footer-wrapper{width:calc(var(--popup-width) - var(--popup-x-padding) * 2);position:absolute;bottom:var(--popup-x-padding);left:var(--popup-x-padding);background-color:var(--popup-bg-color)!important}.core-date-picker-container .cdp-footer{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .today,.core-date-picker-container .clear{width:30%;height:var(--cell-size);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.core-date-picker-container .today{background-color:#f37540}.core-date-picker-container .clear{background-color:brown}@keyframes slide-down{0%{top:calc(var(--scroll-distance) * -1)}to{top:0}}@keyframes slide-up{0%{top:0}to{top:calc(var(--scroll-distance) * -1)}}\n"] }]
|
|
17795
|
-
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: DomService }, { type: CoreDatetimeService }, { type: MultiLanguageService }, { type: AlertService }], propDecorators: { enableTimeZoneConverter: [{
|
|
17999
|
+
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: DomService }, { type: CoreDatetimeService }, { type: MultiLanguageService }, { type: AlertService }, { type: AppConfigService }], propDecorators: { enableTimeZoneConverter: [{
|
|
17796
18000
|
type: Input
|
|
17797
18001
|
}], showPlaceholder: [{
|
|
17798
18002
|
type: Input
|
|
@@ -19943,7 +20147,7 @@ class EvaluateDialogComponent extends BaseComponent {
|
|
|
19943
20147
|
this.evaluateDialogService.numberInput = e;
|
|
19944
20148
|
}
|
|
19945
20149
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: EvaluateDialogComponent, deps: [{ token: MultiLanguageService }, { token: EvaluateDialogService }, { token: RoutingService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19946
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: EvaluateDialogComponent, isStandalone: true, selector: "app-evaluate-dialog", inputs: { showingUp: "showingUp", buttonItems: "buttonItems" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-evaluate-dialog-container roboto-font\">\r\n <div class=\"modal-container\" *ngIf=\"show\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal fade show\" style=\"display: block;\">\r\n <div class=\"modal-dialog\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n\r\n <core-page-header [title]=\"title\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <button type=\"button\" class=\"close\">\r\n <span (click)=\"close()\">\u00D7</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">{{ body | translate: lang }}</div>\r\n <ul *ngIf=\"!!informationLines?.length\">\r\n <li *ngFor=\"let line of informationLines\">\r\n {{ line }}\r\n </li>\r\n </ul>\r\n <div *ngIf=\"!!shownBtn\">\r\n <core-radio-group [options$]=\"options$\"\r\n [(ngModel)]=\"evaluateDialogService.formType\"></core-radio-group>\r\n </div>\r\n <div [ngStyle]=\"{padding: 16 + 'px'}\" *ngIf=\"!!shownInput\">\r\n <label>{{dateWage | translate: lang}}</label>\r\n <core-date-picker [(ngModel)]=\"dateInput\" (ngModelChange)=\"onDateInputChange($event)\"></core-date-picker>\r\n <label class=\"mt-3\">{{reasonLable | translate: lang}}</label>\r\n <textarea [(ngModel)]=\"reason\" (ngModelChange)=\"onReasonEvent($event)\" class=\"form-control\"[rows]=\"'12'\" [ngStyle]=\"{ height: 'unset' }\"></textarea>\r\n </div>\r\n <div *ngIf=\"!!showInputNumber\">\r\n <input [ngModel]=\"inputNumber\" (ngModelChange)=\"onInputNumberChange($event)\" class=\"input-number\" type=\"number\">\r\n </div>\r\n <div *ngIf=\"!!shownBtn\" class=\"line mt-5\"></div>\r\n <div class=\"d-flex justify-content-center py-3\">\r\n <core-button-group-vns [showCaption]=\"true\" (buttonClick)=\"onButtonClick($event)\"\r\n [shownItems]=\"buttonItems\" class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".core-evaluate-dialog-container{--z-index: 9999999999;position:absolute;z-index:var(--z-index);font-size:13px}.core-evaluate-dialog-container .hidden-input{display:none}.core-evaluate-dialog-container .shown{display:block}.core-evaluate-dialog-container .modal-header{padding-top:0;padding-bottom:0}.core-evaluate-dialog-container .line{width:100%;height:1px;background-color:#cccc}.core-evaluate-dialog-container .input-number{width:94%;padding:5px;margin:0 0 0 14px;outline:none;border-radius:5px;border:1px solid #ced4da}.core-evaluate-dialog-container .input-number:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup", "htmlTooltipRef"], outputs: ["buttonClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical", "columnCount", "gapY", "defaultValue"] }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled"] }] }); }
|
|
20150
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: EvaluateDialogComponent, isStandalone: true, selector: "app-evaluate-dialog", inputs: { showingUp: "showingUp", buttonItems: "buttonItems" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-evaluate-dialog-container roboto-font\">\r\n <div class=\"modal-container\" *ngIf=\"show\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal fade show\" style=\"display: block;\">\r\n <div class=\"modal-dialog\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n\r\n <core-page-header [title]=\"title\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <button type=\"button\" class=\"close\">\r\n <span (click)=\"close()\">\u00D7</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">{{ body | translate: lang }}</div>\r\n <ul *ngIf=\"!!informationLines?.length\">\r\n <li *ngFor=\"let line of informationLines\">\r\n {{ line }}\r\n </li>\r\n </ul>\r\n <div *ngIf=\"!!shownBtn\">\r\n <core-radio-group [options$]=\"options$\"\r\n [(ngModel)]=\"evaluateDialogService.formType\"></core-radio-group>\r\n </div>\r\n <div [ngStyle]=\"{padding: 16 + 'px'}\" *ngIf=\"!!shownInput\">\r\n <label>{{dateWage | translate: lang}}</label>\r\n <core-date-picker [(ngModel)]=\"dateInput\" (ngModelChange)=\"onDateInputChange($event)\"></core-date-picker>\r\n <label class=\"mt-3\">{{reasonLable | translate: lang}}</label>\r\n <textarea [(ngModel)]=\"reason\" (ngModelChange)=\"onReasonEvent($event)\" class=\"form-control\"[rows]=\"'12'\" [ngStyle]=\"{ height: 'unset' }\"></textarea>\r\n </div>\r\n <div *ngIf=\"!!showInputNumber\">\r\n <input [ngModel]=\"inputNumber\" (ngModelChange)=\"onInputNumberChange($event)\" class=\"input-number\" type=\"number\">\r\n </div>\r\n <div *ngIf=\"!!shownBtn\" class=\"line mt-5\"></div>\r\n <div class=\"d-flex justify-content-center py-3\">\r\n <core-button-group-vns [showCaption]=\"true\" (buttonClick)=\"onButtonClick($event)\"\r\n [shownItems]=\"buttonItems\" class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".core-evaluate-dialog-container{--z-index: 9999999999;position:absolute;z-index:var(--z-index);font-size:13px}.core-evaluate-dialog-container .hidden-input{display:none}.core-evaluate-dialog-container .shown{display:block}.core-evaluate-dialog-container .modal-header{padding-top:0;padding-bottom:0}.core-evaluate-dialog-container .line{width:100%;height:1px;background-color:#cccc}.core-evaluate-dialog-container .input-number{width:94%;padding:5px;margin:0 0 0 14px;outline:none;border-radius:5px;border:1px solid #ced4da}.core-evaluate-dialog-container .input-number:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup", "htmlTooltipRef"], outputs: ["buttonClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical", "columnCount", "gapY", "defaultValue"] }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }] }); }
|
|
19947
20151
|
}
|
|
19948
20152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: EvaluateDialogComponent, decorators: [{
|
|
19949
20153
|
type: Component,
|
|
@@ -21939,7 +22143,7 @@ class CoreControlNoSeekerComponent extends BaseComponent {
|
|
|
21939
22143
|
this.control.click$?.next(e);
|
|
21940
22144
|
}
|
|
21941
22145
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoSeekerComponent, deps: [{ token: MultiLanguageService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21942
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlNoSeekerComponent, isStandalone: true, selector: "core-control-no-seeker", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, usesInheritance: true, ngImport: i0, template: "<div class=\"core-control-no-seeker-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\">\r\n {{control.controlType!=='CHECKBOX' ? (control.label | translate: lang) : ''}}\r\n </label>\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case ('TEXTBOX') {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" useValueAsDate>\r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n\r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\">\r\n }\r\n @case ('TEXTAREA') {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n\r\n }\r\n @case ('CHECKBOX') {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case ('DATEPICKER') {\r\n <core-date-picker [formControlName]=\"control.field\"></core-date-picker>\r\n }\r\n @case ('DROPDOWN') {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [shownFrom]=\"control.shownFrom!\" [getByIdObject$]=\"control.getByIdObject$!\"></core-dropdown>\r\n }\r\n }\r\n @case ('LIST') {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case ('CHECKLIST') {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case ('FILEUPLOADER') {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"></core-file-uploader>\r\n } \r\n }\r\n }\r\n </ng-container>\r\n\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">{{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-no-seeker-container>div.hidden{display:none}.core-control-no-seeker-container label{color:#464646}.core-control-no-seeker-container label.required:after{content:\"*\";color:#ff040b}.core-control-no-seeker-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options", "placeholder"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }] }); }
|
|
22146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlNoSeekerComponent, isStandalone: true, selector: "core-control-no-seeker", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, usesInheritance: true, ngImport: i0, template: "<div class=\"core-control-no-seeker-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\">\r\n {{control.controlType!=='CHECKBOX' ? (control.label | translate: lang) : ''}}\r\n </label>\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case ('TEXTBOX') {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" useValueAsDate>\r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n\r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\">\r\n }\r\n @case ('TEXTAREA') {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n\r\n }\r\n @case ('CHECKBOX') {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case ('DATEPICKER') {\r\n <core-date-picker \r\n [$rangePoint]=\"control.$rangePoint\"\r\n [formControlName]=\"control.field\"\r\n ></core-date-picker>\r\n }\r\n @case ('DROPDOWN') {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [shownFrom]=\"control.shownFrom!\" [getByIdObject$]=\"control.getByIdObject$!\"></core-dropdown>\r\n }\r\n }\r\n @case ('LIST') {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case ('CHECKLIST') {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case ('FILEUPLOADER') {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"></core-file-uploader>\r\n } \r\n }\r\n }\r\n </ng-container>\r\n\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">{{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-no-seeker-container>div.hidden{display:none}.core-control-no-seeker-container label{color:#464646}.core-control-no-seeker-container label.required:after{content:\"*\";color:#ff040b}.core-control-no-seeker-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options", "placeholder"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }] }); }
|
|
21943
22147
|
}
|
|
21944
22148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoSeekerComponent, decorators: [{
|
|
21945
22149
|
type: Component,
|
|
@@ -21955,7 +22159,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
21955
22159
|
CoreChecklistComponent,
|
|
21956
22160
|
CoreFormControlSeekerComponent,
|
|
21957
22161
|
CoreFileUploaderComponent
|
|
21958
|
-
], template: "<div class=\"core-control-no-seeker-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\">\r\n {{control.controlType!=='CHECKBOX' ? (control.label | translate: lang) : ''}}\r\n </label>\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case ('TEXTBOX') {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" useValueAsDate>\r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n\r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\">\r\n }\r\n @case ('TEXTAREA') {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n\r\n }\r\n @case ('CHECKBOX') {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case ('DATEPICKER') {\r\n <core-date-picker [formControlName]=\"control.field\"></core-date-picker>\r\n }\r\n @case ('DROPDOWN') {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [shownFrom]=\"control.shownFrom!\" [getByIdObject$]=\"control.getByIdObject$!\"></core-dropdown>\r\n }\r\n }\r\n @case ('LIST') {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case ('CHECKLIST') {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case ('FILEUPLOADER') {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"></core-file-uploader>\r\n } \r\n }\r\n }\r\n </ng-container>\r\n\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">{{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-no-seeker-container>div.hidden{display:none}.core-control-no-seeker-container label{color:#464646}.core-control-no-seeker-container label.required:after{content:\"*\";color:#ff040b}.core-control-no-seeker-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"] }]
|
|
22162
|
+
], template: "<div class=\"core-control-no-seeker-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\">\r\n {{control.controlType!=='CHECKBOX' ? (control.label | translate: lang) : ''}}\r\n </label>\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case ('TEXTBOX') {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" useValueAsDate>\r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n\r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\">\r\n }\r\n @case ('TEXTAREA') {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n\r\n }\r\n @case ('CHECKBOX') {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case ('DATEPICKER') {\r\n <core-date-picker \r\n [$rangePoint]=\"control.$rangePoint\"\r\n [formControlName]=\"control.field\"\r\n ></core-date-picker>\r\n }\r\n @case ('DROPDOWN') {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [shownFrom]=\"control.shownFrom!\" [getByIdObject$]=\"control.getByIdObject$!\"></core-dropdown>\r\n }\r\n }\r\n @case ('LIST') {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case ('CHECKLIST') {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case ('FILEUPLOADER') {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"></core-file-uploader>\r\n } \r\n }\r\n }\r\n </ng-container>\r\n\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">{{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-no-seeker-container>div.hidden{display:none}.core-control-no-seeker-container label{color:#464646}.core-control-no-seeker-container label.required:after{content:\"*\";color:#ff040b}.core-control-no-seeker-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"] }]
|
|
21959
22163
|
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: AlertService }], propDecorators: { control: [{
|
|
21960
22164
|
type: Input
|
|
21961
22165
|
}], form: [{
|
|
@@ -23901,7 +24105,7 @@ class CoreControlNoGridBufferComponent extends BaseComponent {
|
|
|
23901
24105
|
this.control.click$?.next(e);
|
|
23902
24106
|
}
|
|
23903
24107
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoGridBufferComponent, deps: [{ token: MultiLanguageService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23904
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlNoGridBufferComponent, isStandalone: true, selector: "core-control-no-grid-buffer", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, usesInheritance: true, ngImport: i0, template: "<div class=\"core-control-no-grid-buffer-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\">\r\n {{control.controlType!=='CHECKBOX' ? (control.label | translate: lang) : ''}}\r\n </label>\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case ('TEXTBOX') {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" useValueAsDate>\r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n\r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\">\r\n }\r\n @case ('TEXTAREA') {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n\r\n }\r\n @case ('CHECKBOX') {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case ('DATEPICKER') {\r\n <core-date-picker [formControlName]=\"control.field\"></core-date-picker>\r\n }\r\n @case ('DROPDOWN') {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [shownFrom]=\"control.shownFrom!\" [getByIdObject$]=\"control.getByIdObject$!\"></core-dropdown>\r\n }\r\n }\r\n @case ('LIST') {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case ('CHECKLIST') {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case ('FILEUPLOADER') {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"></core-file-uploader>\r\n } \r\n }\r\n @case ('SEEKER') {\r\n @if (!!control.seekerSourceType) {\r\n @switch (control.seekerSourceType) {\r\n @case ('EMPLOYEE_SEEK') {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"></core-form-control-seeker>\r\n }\r\n @case ('CONTRACT_SEEK') {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"></core-form-control-seeker>\r\n }\r\n @case ('WORKING_SEEK') {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"></core-form-control-seeker>\r\n }\r\n @case ('ORGANIZATION_UNIT_SEEK') {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [shownFrom]=\"control.shownFrom!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">{{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-no-grid-buffer-container>div.hidden{display:none}.core-control-no-grid-buffer-container label{color:#464646}.core-control-no-grid-buffer-container label.required:after{content:\"*\";color:#ff040b}.core-control-no-grid-buffer-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options", "placeholder"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick", "selfEnrichmentApiDriven", "selfEnrichmentApi", "selfEnrichmentHttpVerb", "selfEnrichmentHttpPayload", "selfEnrichmentShownFrom"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }] }); }
|
|
24108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlNoGridBufferComponent, isStandalone: true, selector: "core-control-no-grid-buffer", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, usesInheritance: true, ngImport: i0, template: "<div class=\"core-control-no-grid-buffer-container\">\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\">\r\n {{control.controlType!=='CHECKBOX' ? (control.label | translate: lang) : ''}}\r\n </label>\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case ('TEXTBOX') {\r\n <input *ngIf=\"control.type==='date'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" useValueAsDate>\r\n <input *ngIf=\"control.type==='number'\" [formControlName]=\"control.field\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\" [step]=\"control.step || '1'\">\r\n\r\n <input *ngIf=\"control.type!=='date' && control.type!=='number'\" [formControlName]=\"control.field\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\" [type]=\"control.type\"\r\n class=\"form-control\" [readonly]=\"control.readonly\">\r\n }\r\n @case ('TEXTAREA') {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\"></textarea>\r\n\r\n }\r\n @case ('CHECKBOX') {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\"></core-checkbox>\r\n }\r\n @case ('DATEPICKER') {\r\n <core-date-picker [formControlName]=\"control.field\"></core-date-picker>\r\n }\r\n @case ('DROPDOWN') {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [formControlName]=\"control.field\" [options$]=\"control.dropdownOptions$!\"\r\n [shownFrom]=\"control.shownFrom!\" [getByIdObject$]=\"control.getByIdObject$!\"></core-dropdown>\r\n }\r\n }\r\n @case ('LIST') {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\"></core-list>\r\n }\r\n @case ('CHECKLIST') {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\"></core-checklist>\r\n }\r\n }\r\n @case ('FILEUPLOADER') {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"></core-file-uploader>\r\n } \r\n }\r\n @case ('SEEKER') {\r\n @if (!!control.seekerSourceType) {\r\n @switch (control.seekerSourceType) {\r\n @case ('EMPLOYEE_SEEK') {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"></core-form-control-seeker>\r\n }\r\n @case ('CONTRACT_SEEK') {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"></core-form-control-seeker>\r\n }\r\n @case ('WORKING_SEEK') {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"></core-form-control-seeker>\r\n }\r\n @case ('ORGANIZATION_UNIT_SEEK') {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [shownFrom]=\"control.shownFrom!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">{{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n</div>", styles: [".core-control-no-grid-buffer-container>div.hidden{display:none}.core-control-no-grid-buffer-container label{color:#464646}.core-control-no-grid-buffer-container label.required:after{content:\"*\";color:#ff040b}.core-control-no-grid-buffer-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options", "placeholder"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick", "selfEnrichmentApiDriven", "selfEnrichmentApi", "selfEnrichmentHttpVerb", "selfEnrichmentHttpPayload", "selfEnrichmentShownFrom"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }] }); }
|
|
23905
24109
|
}
|
|
23906
24110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoGridBufferComponent, decorators: [{
|
|
23907
24111
|
type: Component,
|
|
@@ -26085,7 +26289,7 @@ class CoreControlValueOnlyComponent {
|
|
|
26085
26289
|
});
|
|
26086
26290
|
}
|
|
26087
26291
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlValueOnlyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26088
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlValueOnlyComponent, isStandalone: true, selector: "core-control-value-only", inputs: { $control: { classPropertyName: "$control", publicName: "$control", isSignal: true, isRequired: true, transformFunction: null }, $form: { classPropertyName: "$form", publicName: "$form", isSignal: true, isRequired: true, transformFunction: null }, $fieldName: { classPropertyName: "$fieldName", publicName: "$fieldName", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [formGroup]=\"$form()\">\r\n @switch ($control()?.controlType) {\r\n @case ('TEXTBOX') {\r\n <input class=\"form-control\" [formControlName]=\"$fieldName() || $control()?.field || ''\" [type]=\"$control()?.type || 'text'\"\r\n [placeholder]=\"$control()?.placeholder || ''\" [readonly]=\"$control()?.readonly\" />\r\n }\r\n @case ('CURRENCY') {\r\n <core-currency-input [formControlName]=\"$fieldName() || $control()?.field || ''\"\r\n [placeholder]=\"$control()?.placeholder || ''\">\r\n </core-currency-input>\r\n }\r\n @case ('DROPDOWN') {\r\n @if ($control()?.dropdownOptions$) {\r\n <core-dropdown \r\n [formControlName]=\"$fieldName() || $control()?.field || ''\" \r\n [options$]=\"$control()?.dropdownOptions$!\"\r\n [getByIdObject$]=\"$control()?.getByIdObject$!\"\r\n [shownFrom]=\"$control()?.shownFrom!\"\r\n\r\n [optionApiDriven]=\"$control()?.optionApiDriven!\"\r\n [optionApi]=\"$control()?.optionApi!\"\r\n [optionHttpVerb]=\"$control()?.optionHttpVerb!\"\r\n [optionHttpPayload]=\"$control()?.optionHttpPayload!\"\r\n [optionValueFrom]=\"$control()?.optionValueFrom!\"\r\n [optionTextFrom]=\"$control()?.optionTextFrom!\"\r\n >\r\n </core-dropdown>\r\n }\r\n }\r\n @case ('CHECKLIST') {\r\n @if ($control()?.checklistOptions$) {\r\n <core-checklist [formControlName]=\"$fieldName() || $control()?.field || ''\" [options$]=\"$control()?.checklistOptions$!\">\r\n </core-checklist>\r\n }\r\n }\r\n @case ('DATEPICKER') {\r\n <core-date-picker [formControlName]=\"$fieldName() || $control()?.field || ''\" [rangeLimit]=\"$control()?.rangeLimit!\"\r\n [popupAlign]=\"$control()?.popupAlign!\" [placeholder]=\"$control()?.placeholder || ''\"\r\n [readonly]=\"$control()?.readonly!\">\r\n </core-date-picker>\r\n }\r\n @case ('SEEKER') {\r\n <core-form-control-seeker [formControlName]=\"$fieldName() || $control()?.field || ''\"\r\n [seekerSourceType]=\"$control()?.seekerSourceType!\" [shownFrom]=\"$control()?.shownFrom!\"\r\n [multiMode]=\"$control()?.multiMode!\"\r\n [boundFrom]=\"$control()?.boundFrom!\" [objectList$]=\"$control()?.objectList$!\">\r\n </core-form-control-seeker>\r\n }\r\n @default {\r\n <input class=\"form-control\" [formControlName]=\"$fieldName() || $control()?.field || ''\" type=\"text\"\r\n [placeholder]=\"$control()?.placeholder || ''\" [readonly]=\"$control()?.readonly\" />\r\n }\r\n }\r\n</div>", styles: [":host{display:block}input.form-control,core-dropdown,core-checklist,core-date-picker,core-currency-input,core-form-control-seeker{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick", "selfEnrichmentApiDriven", "selfEnrichmentApi", "selfEnrichmentHttpVerb", "selfEnrichmentHttpPayload", "selfEnrichmentShownFrom"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign", "placeholder"], outputs: ["onLeftFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26292
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlValueOnlyComponent, isStandalone: true, selector: "core-control-value-only", inputs: { $control: { classPropertyName: "$control", publicName: "$control", isSignal: true, isRequired: true, transformFunction: null }, $form: { classPropertyName: "$form", publicName: "$form", isSignal: true, isRequired: true, transformFunction: null }, $fieldName: { classPropertyName: "$fieldName", publicName: "$fieldName", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [formGroup]=\"$form()\">\r\n @switch ($control()?.controlType) {\r\n @case ('TEXTBOX') {\r\n <input class=\"form-control\" [formControlName]=\"$fieldName() || $control()?.field || ''\" [type]=\"$control()?.type || 'text'\"\r\n [placeholder]=\"$control()?.placeholder || ''\" [readonly]=\"$control()?.readonly\" />\r\n }\r\n @case ('CURRENCY') {\r\n <core-currency-input [formControlName]=\"$fieldName() || $control()?.field || ''\"\r\n [placeholder]=\"$control()?.placeholder || ''\">\r\n </core-currency-input>\r\n }\r\n @case ('DROPDOWN') {\r\n @if ($control()?.dropdownOptions$) {\r\n <core-dropdown \r\n [formControlName]=\"$fieldName() || $control()?.field || ''\" \r\n [options$]=\"$control()?.dropdownOptions$!\"\r\n [getByIdObject$]=\"$control()?.getByIdObject$!\"\r\n [shownFrom]=\"$control()?.shownFrom!\"\r\n\r\n [optionApiDriven]=\"$control()?.optionApiDriven!\"\r\n [optionApi]=\"$control()?.optionApi!\"\r\n [optionHttpVerb]=\"$control()?.optionHttpVerb!\"\r\n [optionHttpPayload]=\"$control()?.optionHttpPayload!\"\r\n [optionValueFrom]=\"$control()?.optionValueFrom!\"\r\n [optionTextFrom]=\"$control()?.optionTextFrom!\"\r\n >\r\n </core-dropdown>\r\n }\r\n }\r\n @case ('CHECKLIST') {\r\n @if ($control()?.checklistOptions$) {\r\n <core-checklist [formControlName]=\"$fieldName() || $control()?.field || ''\" [options$]=\"$control()?.checklistOptions$!\">\r\n </core-checklist>\r\n }\r\n }\r\n @case ('DATEPICKER') {\r\n <core-date-picker [formControlName]=\"$fieldName() || $control()?.field || ''\" [rangeLimit]=\"$control()?.rangeLimit!\"\r\n [popupAlign]=\"$control()?.popupAlign!\" [placeholder]=\"$control()?.placeholder || ''\"\r\n [readonly]=\"$control()?.readonly!\">\r\n </core-date-picker>\r\n }\r\n @case ('SEEKER') {\r\n <core-form-control-seeker [formControlName]=\"$fieldName() || $control()?.field || ''\"\r\n [seekerSourceType]=\"$control()?.seekerSourceType!\" [shownFrom]=\"$control()?.shownFrom!\"\r\n [multiMode]=\"$control()?.multiMode!\"\r\n [boundFrom]=\"$control()?.boundFrom!\" [objectList$]=\"$control()?.objectList$!\">\r\n </core-form-control-seeker>\r\n }\r\n @default {\r\n <input class=\"form-control\" [formControlName]=\"$fieldName() || $control()?.field || ''\" type=\"text\"\r\n [placeholder]=\"$control()?.placeholder || ''\" [readonly]=\"$control()?.readonly\" />\r\n }\r\n }\r\n</div>", styles: [":host{display:block}input.form-control,core-dropdown,core-checklist,core-date-picker,core-currency-input,core-form-control-seeker{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick", "selfEnrichmentApiDriven", "selfEnrichmentApi", "selfEnrichmentHttpVerb", "selfEnrichmentHttpPayload", "selfEnrichmentShownFrom"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign", "placeholder"], outputs: ["onLeftFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26089
26293
|
}
|
|
26090
26294
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlValueOnlyComponent, decorators: [{
|
|
26091
26295
|
type: Component,
|
|
@@ -26642,7 +26846,7 @@ class CoreControlNoFormArrayComponent extends BaseComponent {
|
|
|
26642
26846
|
}
|
|
26643
26847
|
}
|
|
26644
26848
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoFormArrayComponent, deps: [{ token: MultiLanguageService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26645
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlNoFormArrayComponent, isStandalone: true, selector: "core-control-no-form-array", inputs: { control: "control", checkError$: "checkError$", rangeLimit: "rangeLimit", readonly: "readonly", disabled: "disabled" }, host: { listeners: { "window:click": "onWindowClick()" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n\r\n <!-- <input *ngIf=\"control.type==='calculated'\"\r\n [formControlName]=\"control.field\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [readonly]=\"true\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"true\" /> -->\r\n\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea \r\n [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [disabled]=\"!!disabled || !!control.disabled\" [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [showPlaceholder]=\"control.showPlaceholder!\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\" [placeholder]=\"control.placeholder! || ''\"></core-date-picker>\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"RULE_SET\") {\r\n <core-rule-set \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"\r\n />\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\" \r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n @if (control.controlType==='BUTTON') {\r\n <ng-container>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n }\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n @if (!!errors!.length) {\r\n <div>\r\n @for (error of errors; track $index) {\r\n <div class=\"form-control-error\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if (!errors!.length && !!checkError$.value) {\r\n <div>\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n }\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options", "placeholder"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick", "selfEnrichmentApiDriven", "selfEnrichmentApi", "selfEnrichmentHttpVerb", "selfEnrichmentHttpPayload", "selfEnrichmentShownFrom"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }, { kind: "component", type: CoreAttachmentComponent, selector: "core-attachment", inputs: ["assignTo", "readonly", "valueToShow", "placeholder", "upFlag$", "downFlag$"] }, { kind: "component", type: CoreGridBufferComponent, selector: "core-grid-buffer", inputs: ["padding", "placeholder", "tableHeight", "liteMode", "formSections", "gridColumns"], outputs: ["onBufferFormCreated"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical", "columnCount", "gapY", "defaultValue"] }, { kind: "component", type: CoreMccComponent, selector: "core-mcc", inputs: ["height", "columns", "shownFrom", "apiDefinition", "getByIdApi", "outerParam$", "selectedRow$", "outerFilterOperators", "outerInOperators", "placeholder"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign", "placeholder"], outputs: ["onLeftFocus"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "disabled", "relativeMode"] }, { kind: "component", type: CoreTopicPickerComponent, selector: "core-topic-picker", inputs: ["popupHeight", "getByIdApi"] }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }, { kind: "component", type: CoreRuleSetComponent, selector: "core-rule-set" }, { kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "color", "backgroundColor", "hold$"] }] }); }
|
|
26849
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlNoFormArrayComponent, isStandalone: true, selector: "core-control-no-form-array", inputs: { control: "control", checkError$: "checkError$", rangeLimit: "rangeLimit", readonly: "readonly", disabled: "disabled" }, host: { listeners: { "window:click": "onWindowClick()" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n\r\n <!-- <input *ngIf=\"control.type==='calculated'\"\r\n [formControlName]=\"control.field\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [readonly]=\"true\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"true\" /> -->\r\n\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea \r\n [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [disabled]=\"!!disabled || !!control.disabled\" [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [$rangePoint]=\"control.$rangePoint!\"\r\n [formControlName]=\"control.field\" [showPlaceholder]=\"control.showPlaceholder!\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\" [placeholder]=\"control.placeholder! || ''\"></core-date-picker>\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"RULE_SET\") {\r\n <core-rule-set \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"\r\n />\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\" \r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n @if (control.controlType==='BUTTON') {\r\n <ng-container>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n }\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n @if (!!errors!.length) {\r\n <div>\r\n @for (error of errors; track $index) {\r\n <div class=\"form-control-error\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if (!errors!.length && !!checkError$.value) {\r\n <div>\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n }\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options", "placeholder"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick", "selfEnrichmentApiDriven", "selfEnrichmentApi", "selfEnrichmentHttpVerb", "selfEnrichmentHttpPayload", "selfEnrichmentShownFrom"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }, { kind: "component", type: CoreAttachmentComponent, selector: "core-attachment", inputs: ["assignTo", "readonly", "valueToShow", "placeholder", "upFlag$", "downFlag$"] }, { kind: "component", type: CoreGridBufferComponent, selector: "core-grid-buffer", inputs: ["padding", "placeholder", "tableHeight", "liteMode", "formSections", "gridColumns"], outputs: ["onBufferFormCreated"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical", "columnCount", "gapY", "defaultValue"] }, { kind: "component", type: CoreMccComponent, selector: "core-mcc", inputs: ["height", "columns", "shownFrom", "apiDefinition", "getByIdApi", "outerParam$", "selectedRow$", "outerFilterOperators", "outerInOperators", "placeholder"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign", "placeholder"], outputs: ["onLeftFocus"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "disabled", "relativeMode"] }, { kind: "component", type: CoreTopicPickerComponent, selector: "core-topic-picker", inputs: ["popupHeight", "getByIdApi"] }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }, { kind: "component", type: CoreRuleSetComponent, selector: "core-rule-set" }, { kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "color", "backgroundColor", "hold$"] }] }); }
|
|
26646
26850
|
}
|
|
26647
26851
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoFormArrayComponent, decorators: [{
|
|
26648
26852
|
type: Component,
|
|
@@ -26674,7 +26878,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
26674
26878
|
CoreIosSwitcherComponent,
|
|
26675
26879
|
CoreRuleSetComponent,
|
|
26676
26880
|
HtmlTooltipDirective
|
|
26677
|
-
], template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n\r\n <!-- <input *ngIf=\"control.type==='calculated'\"\r\n [formControlName]=\"control.field\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [readonly]=\"true\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"true\" /> -->\r\n\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea \r\n [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [disabled]=\"!!disabled || !!control.disabled\" [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [showPlaceholder]=\"control.showPlaceholder!\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\" [placeholder]=\"control.placeholder! || ''\"></core-date-picker>\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"RULE_SET\") {\r\n <core-rule-set \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"\r\n />\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\" \r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n @if (control.controlType==='BUTTON') {\r\n <ng-container>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n }\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n @if (!!errors!.length) {\r\n <div>\r\n @for (error of errors; track $index) {\r\n <div class=\"form-control-error\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if (!errors!.length && !!checkError$.value) {\r\n <div>\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n }\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"] }]
|
|
26881
|
+
], template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\" />\r\n\r\n <!-- <input *ngIf=\"control.type==='calculated'\"\r\n [formControlName]=\"control.field\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [readonly]=\"true\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"true\" /> -->\r\n\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea \r\n [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [disabled]=\"!!disabled || !!control.disabled\" [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [$rangePoint]=\"control.$rangePoint!\"\r\n [formControlName]=\"control.field\" [showPlaceholder]=\"control.showPlaceholder!\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\" [placeholder]=\"control.placeholder! || ''\"></core-date-picker>\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"RULE_SET\") {\r\n <core-rule-set \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"\r\n />\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\" \r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n @if (control.controlType==='BUTTON') {\r\n <ng-container>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n }\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n @if (!!errors!.length) {\r\n <div>\r\n @for (error of errors; track $index) {\r\n <div class=\"form-control-error\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if (!errors!.length && !!checkError$.value) {\r\n <div>\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n }\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"] }]
|
|
26678
26882
|
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: AlertService }], propDecorators: { control: [{
|
|
26679
26883
|
type: Input
|
|
26680
26884
|
}], checkError$: [{
|
|
@@ -27830,40 +28034,34 @@ const CREATE_O = {
|
|
|
27830
28034
|
label: 'ID',
|
|
27831
28035
|
kind: 'string',
|
|
27832
28036
|
defaultValue: crypto.randomUUID(),
|
|
27833
|
-
|
|
28037
|
+
hidden: true,
|
|
28038
|
+
row: 1,
|
|
28039
|
+
flexSize: 0,
|
|
27834
28040
|
},
|
|
27835
28041
|
{
|
|
27836
28042
|
key: 'ORIGINAL_NAME',
|
|
27837
|
-
label: 'Tên chính danh lịch sử
|
|
28043
|
+
label: 'Tên chính danh lịch sử',
|
|
27838
28044
|
kind: 'string',
|
|
27839
|
-
validators: {
|
|
27840
|
-
required: true,
|
|
27841
|
-
minLength: 3,
|
|
27842
|
-
maxLength: 255
|
|
27843
|
-
}
|
|
27844
|
-
},
|
|
27845
|
-
{
|
|
27846
|
-
key: 'CODE',
|
|
27847
|
-
label: 'Mã hệ thống',
|
|
27848
|
-
kind: 'string',
|
|
27849
|
-
defaultValue: crypto.randomUUID(),
|
|
27850
28045
|
validators: {
|
|
27851
28046
|
required: true,
|
|
27852
28047
|
minLength: 3,
|
|
27853
28048
|
maxLength: 255
|
|
27854
28049
|
},
|
|
27855
|
-
|
|
28050
|
+
row: 1,
|
|
28051
|
+
flexSize: 4,
|
|
27856
28052
|
},
|
|
27857
28053
|
{
|
|
27858
|
-
key: '
|
|
27859
|
-
label: 'Mã
|
|
28054
|
+
key: 'CODE',
|
|
28055
|
+
label: 'Mã',
|
|
27860
28056
|
kind: 'string',
|
|
28057
|
+
defaultValue: crypto.randomUUID().slice(0, 8).toUpperCase(),
|
|
27861
28058
|
validators: {
|
|
27862
28059
|
required: true,
|
|
27863
28060
|
minLength: 3,
|
|
27864
28061
|
maxLength: 255
|
|
27865
28062
|
},
|
|
27866
|
-
|
|
28063
|
+
row: 1,
|
|
28064
|
+
flexSize: 4,
|
|
27867
28065
|
},
|
|
27868
28066
|
{
|
|
27869
28067
|
key: 'TREE_ID',
|
|
@@ -27872,16 +28070,9 @@ const CREATE_O = {
|
|
|
27872
28070
|
defaultValue: true,
|
|
27873
28071
|
validators: {
|
|
27874
28072
|
required: true
|
|
27875
|
-
}
|
|
27876
|
-
|
|
27877
|
-
|
|
27878
|
-
key: 'IS_ROOT',
|
|
27879
|
-
label: 'Là đơn vị gốc',
|
|
27880
|
-
kind: 'boolean',
|
|
27881
|
-
defaultValue: false,
|
|
27882
|
-
validators: {
|
|
27883
|
-
required: true
|
|
27884
|
-
}
|
|
28073
|
+
},
|
|
28074
|
+
row: 1,
|
|
28075
|
+
flexSize: 4
|
|
27885
28076
|
},
|
|
27886
28077
|
{
|
|
27887
28078
|
key: 'AVAILABLE_UTC',
|
|
@@ -27889,11 +28080,13 @@ const CREATE_O = {
|
|
|
27889
28080
|
kind: 'date',
|
|
27890
28081
|
validators: {
|
|
27891
28082
|
required: true
|
|
27892
|
-
}
|
|
28083
|
+
},
|
|
28084
|
+
row: 2,
|
|
28085
|
+
flexSize: 4,
|
|
27893
28086
|
},
|
|
27894
28087
|
{
|
|
27895
28088
|
key: 'TIMEZONE_ID',
|
|
27896
|
-
label: '
|
|
28089
|
+
label: 'Theo múi giờ',
|
|
27897
28090
|
kind: 'timezoneId',
|
|
27898
28091
|
defaultValue: 'Asia/Saigon',
|
|
27899
28092
|
validators: {
|
|
@@ -27904,7 +28097,18 @@ const CREATE_O = {
|
|
|
27904
28097
|
},
|
|
27905
28098
|
row: 2,
|
|
27906
28099
|
flexSize: 4
|
|
27907
|
-
}
|
|
28100
|
+
},
|
|
28101
|
+
{
|
|
28102
|
+
key: 'IS_ROOT',
|
|
28103
|
+
label: 'Là đơn vị gốc',
|
|
28104
|
+
kind: 'boolean',
|
|
28105
|
+
defaultValue: false,
|
|
28106
|
+
validators: {
|
|
28107
|
+
required: true
|
|
28108
|
+
},
|
|
28109
|
+
row: 2,
|
|
28110
|
+
flexSize: 3,
|
|
28111
|
+
},
|
|
27908
28112
|
],
|
|
27909
28113
|
};
|
|
27910
28114
|
|
|
@@ -28178,14 +28382,30 @@ const SET_O_ATTR = {
|
|
|
28178
28382
|
quickEmoji: '→ 📝🏢',
|
|
28179
28383
|
inputs: [
|
|
28180
28384
|
{
|
|
28181
|
-
key: 'ID', label: 'Tổ chức', kind: '
|
|
28385
|
+
key: 'ID', label: 'Tổ chức', kind: 'orgGardenReference', validators: {
|
|
28182
28386
|
required: true
|
|
28183
|
-
}
|
|
28387
|
+
},
|
|
28388
|
+
row: 1,
|
|
28389
|
+
flexSize: 4
|
|
28390
|
+
},
|
|
28391
|
+
{
|
|
28392
|
+
key: 'OBJECT_TYPE', label: 'Loại đối tượng', kind: 'string',
|
|
28393
|
+
defaultValue: 'O',
|
|
28394
|
+
hidden: true,
|
|
28184
28395
|
},
|
|
28185
28396
|
{
|
|
28186
28397
|
key: 'ATTRIBUTE_NAME', label: 'Thuộc tính', kind: 'orgAttributeName', validators: {
|
|
28187
28398
|
required: true
|
|
28188
|
-
}
|
|
28399
|
+
},
|
|
28400
|
+
row: 1,
|
|
28401
|
+
flexSize: 4
|
|
28402
|
+
},
|
|
28403
|
+
{
|
|
28404
|
+
key: 'VALUE_IN_STRING', label: 'Thuộc tính', kind: 'orgAttributeName', validators: {
|
|
28405
|
+
required: true
|
|
28406
|
+
},
|
|
28407
|
+
row: 1,
|
|
28408
|
+
flexSize: 4
|
|
28189
28409
|
}
|
|
28190
28410
|
],
|
|
28191
28411
|
};
|
|
@@ -28202,6 +28422,11 @@ const SET_S_ATTR = {
|
|
|
28202
28422
|
required: true
|
|
28203
28423
|
}
|
|
28204
28424
|
},
|
|
28425
|
+
{
|
|
28426
|
+
key: 'OBJECT_TYPE', label: 'Loại đối tượng', kind: 'string',
|
|
28427
|
+
defaultValue: 'S',
|
|
28428
|
+
hidden: true,
|
|
28429
|
+
},
|
|
28205
28430
|
{
|
|
28206
28431
|
key: 'ATTRIBUTE_NAME', label: 'Thuộc tính', kind: 'seatAttributeName', validators: {
|
|
28207
28432
|
required: true
|
|
@@ -28222,6 +28447,11 @@ const SET_P_ATTR = {
|
|
|
28222
28447
|
required: true
|
|
28223
28448
|
}
|
|
28224
28449
|
},
|
|
28450
|
+
{
|
|
28451
|
+
key: 'OBJECT_TYPE', label: 'Loại đối tượng', kind: 'string',
|
|
28452
|
+
defaultValue: 'P',
|
|
28453
|
+
hidden: true,
|
|
28454
|
+
},
|
|
28225
28455
|
{
|
|
28226
28456
|
key: 'ATTRIBUTE_NAME', label: 'Thuộc tính', kind: 'personAttributeName', validators: {
|
|
28227
28457
|
required: true
|
|
@@ -28532,26 +28762,119 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
28532
28762
|
], template: "<div\r\n class=\"entity-token\"\r\n [class.compact]=\"$mode() === 'compact'\"\r\n [class.pill]=\"$mode() === 'pill'\"\r\n [class.full]=\"$mode() === 'full'\"\r\n [attr.data-entity]=\"$token().entityType\"\r\n [htmlTooltip]=\"tooltipTpl\"\r\n>\r\n <!-- TOKEN BADGE -->\r\n <span class=\"token-badge\">\r\n {{ $token().token }}\r\n </span>\r\n\r\n <!-- MAIN CONTENT -->\r\n <div class=\"token-content\">\r\n <!-- Primary line -->\r\n <div class=\"primary\">\r\n @if ($token().humanSnapshot.CODE) {\r\n <span class=\"code\">{{ $token().humanSnapshot.CODE }}</span>\r\n }\r\n @else if ($token().humanSnapshot.SHORT_CODE) {\r\n <span class=\"code\">{{ $token().humanSnapshot.SHORT_CODE }}</span>\r\n }\r\n @else if ($token().humanSnapshot.ROLE) {\r\n <span class=\"code\">{{ $token().humanSnapshot.ROLE }}</span>\r\n }\r\n @else {\r\n <span class=\"code muted\">Unnamed</span>\r\n }\r\n </div>\r\n\r\n <!-- Secondary line -->\r\n @if ($mode() !== 'pill') {\r\n <div class=\"secondary\">\r\n @if ($token().humanSnapshot.ORIGINAL_NAME) {\r\n <span>{{ $token().humanSnapshot.ORIGINAL_NAME }}</span>\r\n }\r\n @else if ($token().humanSnapshot.TREE_NAME) {\r\n <span>{{ $token().humanSnapshot.TREE_NAME }}</span>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n<!-- TOOLTIP -->\r\n<ng-template #tooltipTpl>\r\n <div class=\"entity-token-tooltip\">\r\n <div class=\"header\">\r\n <strong>{{ $token().token }}</strong>\r\n <span class=\"entity-type\">{{ $token().entityType }}</span>\r\n </div>\r\n\r\n <div class=\"snapshot\">\r\n @for (key of Object.keys($token().humanSnapshot); track key) {\r\n <div class=\"row\">\r\n <span class=\"k\">{{ key }}</span>\r\n <span class=\"v\">{{ $token().humanSnapshot[key] }}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:inline-block;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.entity-token{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;border:1px solid var(--token-border, #d0d7de);background:var(--token-bg, #f8f9fb);cursor:default;-webkit-user-select:none;user-select:none;transition:background .15s ease,border-color .15s ease}.entity-token:hover{background:#eef3f8;border-color:#b6c2d2}.entity-token[data-entity=O]{--token-accent: #2563eb}.entity-token[data-entity=S]{--token-accent: #059669}.entity-token[data-entity=P]{--token-accent: #7c3aed}.token-badge{min-width:28px;height:22px;padding:0 6px;border-radius:6px;font-size:12px;font-weight:600;line-height:22px;text-align:center;color:#fff;background:var(--token-accent)}.token-content{display:flex;flex-direction:column;line-height:1.2}.primary{font-size:13px;font-weight:600;color:#1f2937}.primary .code{white-space:nowrap}.primary .muted{color:#9ca3af;font-weight:500}.secondary{font-size:12px;color:#6b7280}.entity-token.pill{padding:4px 8px}.entity-token.pill .token-content{display:none}.entity-token.compact .secondary{display:block}.entity-token.full{padding:10px 12px}.entity-token.full .primary{font-size:14px}.entity-token.full .secondary{font-size:13px}.entity-token-tooltip{min-width:220px;padding:8px 10px;background:#111827;color:#f9fafb;border-radius:8px;font-size:12px}.entity-token-tooltip .header{display:flex;justify-content:space-between;margin-bottom:6px}.entity-token-tooltip .header strong{font-weight:600}.entity-token-tooltip .header .entity-type{opacity:.7;font-size:11px}.entity-token-tooltip .snapshot{display:flex;flex-direction:column;gap:4px}.entity-token-tooltip .snapshot .row{display:flex;gap:6px}.entity-token-tooltip .snapshot .row .k{min-width:90px;color:#9ca3af;font-weight:500}.entity-token-tooltip .snapshot .row .v{color:#e5e7eb;word-break:break-word}\n"] }]
|
|
28533
28763
|
}] });
|
|
28534
28764
|
|
|
28765
|
+
class DomDecisionContextService {
|
|
28766
|
+
constructor() {
|
|
28767
|
+
// Omega được cấp từ Editor
|
|
28768
|
+
this.$omega = signal(null);
|
|
28769
|
+
this.$selectedIntentDescriptor = signal(null);
|
|
28770
|
+
// Derived – không lưu state
|
|
28771
|
+
this.$availableTokens = computed(() => {
|
|
28772
|
+
const omega = this.$omega();
|
|
28773
|
+
if (!omega)
|
|
28774
|
+
return [];
|
|
28775
|
+
const map = new Map();
|
|
28776
|
+
function isEntityToken(v) {
|
|
28777
|
+
return !!v
|
|
28778
|
+
&& typeof v === 'object'
|
|
28779
|
+
&& 'uuid' in v
|
|
28780
|
+
&& 'entityType' in v
|
|
28781
|
+
&& 'token' in v;
|
|
28782
|
+
}
|
|
28783
|
+
for (const intent of omega.inputChain) {
|
|
28784
|
+
for (const value of Object.values(intent.input ?? {})) {
|
|
28785
|
+
if (isEntityToken(value)) {
|
|
28786
|
+
if (!map.has(value.uuid)) {
|
|
28787
|
+
map.set(value.uuid, {
|
|
28788
|
+
...value,
|
|
28789
|
+
producedBySeq: intent.seq
|
|
28790
|
+
});
|
|
28791
|
+
}
|
|
28792
|
+
}
|
|
28793
|
+
}
|
|
28794
|
+
}
|
|
28795
|
+
return Array.from(map.values());
|
|
28796
|
+
});
|
|
28797
|
+
}
|
|
28798
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28799
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService }); }
|
|
28800
|
+
}
|
|
28801
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService, decorators: [{
|
|
28802
|
+
type: Injectable
|
|
28803
|
+
}] });
|
|
28804
|
+
|
|
28805
|
+
/**
|
|
28806
|
+
* DomOIdFactoryComponent
|
|
28807
|
+
*
|
|
28808
|
+
* Đây KHÔNG phải là một picker thông thường, cũng không phải là một input CRUD.
|
|
28809
|
+
*
|
|
28810
|
+
* Component này đóng vai trò là “Symbolic Reference Binder” trong ngữ cảnh
|
|
28811
|
+
* CoreDomDecisionEditor. Nhiệm vụ duy nhất của nó là cho phép người dùng:
|
|
28812
|
+
* - Phát biểu một danh từ tổ chức (O) dưới dạng ý định (literal),
|
|
28813
|
+
* - Hoặc ràng buộc tới một token tổ chức đã được nhắc tới ở các Seq trước đó.
|
|
28814
|
+
*
|
|
28815
|
+
* Các nguyên tắc bất biến:
|
|
28816
|
+
* - KHÔNG sinh entity mới.
|
|
28817
|
+
* - KHÔNG tạo ID giả, KHÔNG mô phỏng DB.
|
|
28818
|
+
* - KHÔNG giữ state riêng về token.
|
|
28819
|
+
* - KHÔNG nhận token qua @Input().
|
|
28820
|
+
*
|
|
28821
|
+
* DomOIdFactory chỉ đọc “sự thật ngữ cảnh” từ DomDecisionContextService,
|
|
28822
|
+
* nơi tập hợp các token hợp lệ theo activeSeq hiện tại của Decision.
|
|
28823
|
+
* Nhờ đó, component này không bao giờ cho phép người dùng
|
|
28824
|
+
* “nhắc tới tương lai” hoặc phá vỡ quan hệ nhân quả của Intent Chain.
|
|
28825
|
+
*
|
|
28826
|
+
* Giá trị mà component ghi vào form KHÔNG phải là PK/ID DB,
|
|
28827
|
+
* mà là một biểu thức tham chiếu mang tính ngôn ngữ (symbolic reference),
|
|
28828
|
+
* sẽ được resolve duy nhất ở giai đoạn Executor.
|
|
28829
|
+
*
|
|
28830
|
+
* Component này chỉ được phép sử dụng bên trong CoreDomDecisionEditor.
|
|
28831
|
+
* Nếu cần tái sử dụng ở ngữ cảnh khác, phải tạo component mới hoặc adapter rõ ràng,
|
|
28832
|
+
* không được mang DomOIdFactory ra khỏi Decision boundary.
|
|
28833
|
+
*
|
|
28834
|
+
* DomOIdFactoryComponent là tiền đề kiến trúc cho các component cùng họ:
|
|
28835
|
+
* - DomSIdFactoryComponent
|
|
28836
|
+
* - DomPIdFactoryComponent
|
|
28837
|
+
*
|
|
28838
|
+
* Nếu component này bị đơn giản hóa hoặc dùng sai ngữ cảnh,
|
|
28839
|
+
* toàn bộ mô hình Token / Decision / Executor phía sau sẽ mất ý nghĩa.
|
|
28840
|
+
*/
|
|
28535
28841
|
class DomOIdFactoryComponent extends CoreFormControlBaseComponent {
|
|
28536
28842
|
constructor() {
|
|
28537
28843
|
super(...arguments);
|
|
28538
|
-
|
|
28539
|
-
this.$tokens =
|
|
28844
|
+
this.ctx = inject(DomDecisionContextService);
|
|
28845
|
+
this.$tokens = this.ctx.$availableTokens;
|
|
28540
28846
|
this.$loading = signal(false);
|
|
28541
28847
|
this.$searchText = signal('');
|
|
28848
|
+
this.$displayName = signal('');
|
|
28849
|
+
this.$open = signal(false);
|
|
28542
28850
|
this.MOCK_DATA = MOCK_DATA;
|
|
28543
28851
|
}
|
|
28852
|
+
onTokenPicked(t) {
|
|
28853
|
+
// bind symbolic reference into form control
|
|
28854
|
+
this.writeValue({
|
|
28855
|
+
kind: 'OutputRef',
|
|
28856
|
+
value: t.token
|
|
28857
|
+
});
|
|
28858
|
+
}
|
|
28544
28859
|
onSearchTextChange(e) {
|
|
28545
28860
|
this.$searchText.set(e);
|
|
28546
28861
|
}
|
|
28862
|
+
onPopupToggle() {
|
|
28863
|
+
this.$open.set(!this.$open());
|
|
28864
|
+
}
|
|
28865
|
+
onTreeItemSelected(e) {
|
|
28866
|
+
this.$displayName.set(e.label);
|
|
28867
|
+
this.onChange(e.id);
|
|
28868
|
+
this.$open.set(false);
|
|
28869
|
+
}
|
|
28547
28870
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomOIdFactoryComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
28548
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: DomOIdFactoryComponent, isStandalone: true, selector: "dom-oid-factory",
|
|
28871
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: DomOIdFactoryComponent, isStandalone: true, selector: "dom-oid-factory", providers: [
|
|
28549
28872
|
{
|
|
28550
28873
|
provide: NG_VALUE_ACCESSOR,
|
|
28551
28874
|
multi: true,
|
|
28552
28875
|
useExisting: forwardRef(() => DomOIdFactoryComponent),
|
|
28553
28876
|
},
|
|
28554
|
-
], usesInheritance: true, ngImport: i0, template: "@if ($loading()) {\r\n
|
|
28877
|
+
], usesInheritance: true, ngImport: i0, template: "@if ($loading()) {\r\n<core-rotating-text />\r\n} @else {\r\n\r\n<div class=\"dom-oid-factory-container\">\r\n\r\n <!-- DISPLAY -->\r\n <div class=\"oid-display-name\">\r\n <input type=\"text\" class=\"oid-name-input form-control\" [value]=\"$displayName()\" />\r\n <div class=\"icon\" (click)=\"onPopupToggle()\">\r\n <i class=\"feather-chevron-down\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"factory-popup\" [class.open]=\"$open()\">\r\n\r\n <div class=\"popup-content\">\r\n\r\n <!-- TYPE / NAME -->\r\n <div class=\"oid-search\">\r\n <input type=\"text\" class=\"oid-search-input\" placeholder=\"G\u00F5 \u0111\u1EC3 \u0111\u1ECBnh danh th\u1EF1c th\u1EC3 (\u00FD \u0111\u1ECBnh)\u2026\"\r\n [value]=\"$searchText()\" (input)=\"onSearchTextChange($any($event.target).value)\" />\r\n </div>\r\n\r\n <!-- OPTIONAL TREE (contextual memory only) -->\r\n <div class=\"oid-tree\">\r\n <core-tree-reference \r\n [$data]=\"MOCK_DATA\"\r\n (selected)=\"onTreeItemSelected($event)\" \r\n />\r\n </div>\r\n\r\n <!-- SYMBOLIC CONTEXT STRIP -->\r\n @if ($tokens().length > 0) {\r\n <div class=\"oid-token-strip\">\r\n @for (t of $tokens(); track t.uuid) {\r\n <dom-entity-token [$token]=\"t\" [$mode]=\"'pill'\" (click)=\"onTokenPicked(t)\">\r\n </dom-entity-token>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n}", styles: [".dom-oid-factory-container{display:flex;flex-direction:column;gap:8px;position:relative}.dom-oid-factory-container .oid-display-name{position:relative}.dom-oid-factory-container .oid-display-name .icon{display:flex;align-items:center;justify-content:center;width:35px;height:35px;cursor:pointer;position:absolute;right:0;top:0;border-left:1px solid #ced4da;z-index:1}.dom-oid-factory-container .factory-popup{height:0;overflow:hidden;position:absolute;background-color:#fff;width:320px;box-shadow:.4rem 0 2rem #4d2e2e2e;z-index:1;top:35px;transition:height .25s ease-out}.dom-oid-factory-container .factory-popup.open{height:400px}.dom-oid-factory-container .factory-popup .popup-content{padding:15px}.oid-search-input{width:100%;padding:6px 10px;border:1px solid #ccc}.oid-tree{max-height:320px;overflow:auto}\n"], dependencies: [{ kind: "component", type: CoreRotatingTextComponent, selector: "core-rotating-text" }, { kind: "component", type: DomEntityTokenComponent, selector: "dom-entity-token", inputs: ["$token", "$mode"] }, { kind: "component", type: CoreTreeReferenceComponent, selector: "core-tree-reference", inputs: ["$data", "$itemTemplateRef"], outputs: ["selected"] }, { kind: "ngmodule", type: FormsModule }] }); }
|
|
28555
28878
|
}
|
|
28556
28879
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomOIdFactoryComponent, decorators: [{
|
|
28557
28880
|
type: Component,
|
|
@@ -28566,7 +28889,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
28566
28889
|
multi: true,
|
|
28567
28890
|
useExisting: forwardRef(() => DomOIdFactoryComponent),
|
|
28568
28891
|
},
|
|
28569
|
-
], template: "@if ($loading()) {\r\n
|
|
28892
|
+
], template: "@if ($loading()) {\r\n<core-rotating-text />\r\n} @else {\r\n\r\n<div class=\"dom-oid-factory-container\">\r\n\r\n <!-- DISPLAY -->\r\n <div class=\"oid-display-name\">\r\n <input type=\"text\" class=\"oid-name-input form-control\" [value]=\"$displayName()\" />\r\n <div class=\"icon\" (click)=\"onPopupToggle()\">\r\n <i class=\"feather-chevron-down\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"factory-popup\" [class.open]=\"$open()\">\r\n\r\n <div class=\"popup-content\">\r\n\r\n <!-- TYPE / NAME -->\r\n <div class=\"oid-search\">\r\n <input type=\"text\" class=\"oid-search-input\" placeholder=\"G\u00F5 \u0111\u1EC3 \u0111\u1ECBnh danh th\u1EF1c th\u1EC3 (\u00FD \u0111\u1ECBnh)\u2026\"\r\n [value]=\"$searchText()\" (input)=\"onSearchTextChange($any($event.target).value)\" />\r\n </div>\r\n\r\n <!-- OPTIONAL TREE (contextual memory only) -->\r\n <div class=\"oid-tree\">\r\n <core-tree-reference \r\n [$data]=\"MOCK_DATA\"\r\n (selected)=\"onTreeItemSelected($event)\" \r\n />\r\n </div>\r\n\r\n <!-- SYMBOLIC CONTEXT STRIP -->\r\n @if ($tokens().length > 0) {\r\n <div class=\"oid-token-strip\">\r\n @for (t of $tokens(); track t.uuid) {\r\n <dom-entity-token [$token]=\"t\" [$mode]=\"'pill'\" (click)=\"onTokenPicked(t)\">\r\n </dom-entity-token>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n}", styles: [".dom-oid-factory-container{display:flex;flex-direction:column;gap:8px;position:relative}.dom-oid-factory-container .oid-display-name{position:relative}.dom-oid-factory-container .oid-display-name .icon{display:flex;align-items:center;justify-content:center;width:35px;height:35px;cursor:pointer;position:absolute;right:0;top:0;border-left:1px solid #ced4da;z-index:1}.dom-oid-factory-container .factory-popup{height:0;overflow:hidden;position:absolute;background-color:#fff;width:320px;box-shadow:.4rem 0 2rem #4d2e2e2e;z-index:1;top:35px;transition:height .25s ease-out}.dom-oid-factory-container .factory-popup.open{height:400px}.dom-oid-factory-container .factory-popup .popup-content{padding:15px}.oid-search-input{width:100%;padding:6px 10px;border:1px solid #ccc}.oid-tree{max-height:320px;overflow:auto}\n"] }]
|
|
28570
28893
|
}] });
|
|
28571
28894
|
|
|
28572
28895
|
class IntentComposerComponent extends BaseComponent {
|
|
@@ -28576,8 +28899,8 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
28576
28899
|
this.MOCK_DATA = MOCK_DATA;
|
|
28577
28900
|
// ===== Inputs / Outputs =====
|
|
28578
28901
|
this.$descriptor = input.required();
|
|
28579
|
-
this
|
|
28580
|
-
this
|
|
28902
|
+
this.intentComposed = output();
|
|
28903
|
+
this.cancelled = output();
|
|
28581
28904
|
// ===== Local UI-only state =====
|
|
28582
28905
|
this.$draftInput = signal({});
|
|
28583
28906
|
this.$errors = signal([]);
|
|
@@ -28586,6 +28909,7 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
28586
28909
|
// ===== Services =====
|
|
28587
28910
|
this.fb = inject(FormBuilder);
|
|
28588
28911
|
this.as = inject(AlertService);
|
|
28912
|
+
this.ctx = inject(DomDecisionContextService);
|
|
28589
28913
|
this.form = this.fb.group({});
|
|
28590
28914
|
this.$rowableInputs = computed(() => {
|
|
28591
28915
|
const inputs = this.$descriptor().inputs ?? [];
|
|
@@ -28646,6 +28970,7 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
28646
28970
|
}
|
|
28647
28971
|
}
|
|
28648
28972
|
this.form = new FormGroup(controls);
|
|
28973
|
+
this.applyActionSpecificBehavior(descriptor);
|
|
28649
28974
|
}
|
|
28650
28975
|
onInputChange(key, value) {
|
|
28651
28976
|
this.$draftInput.update(prev => ({
|
|
@@ -28659,13 +28984,15 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
28659
28984
|
if (this.$errors().length > 0) {
|
|
28660
28985
|
return;
|
|
28661
28986
|
}
|
|
28662
|
-
this
|
|
28987
|
+
this.intentComposed.emit({
|
|
28663
28988
|
actionCode: this.$descriptor().actionCode,
|
|
28664
28989
|
input: this.form.getRawValue()
|
|
28665
28990
|
});
|
|
28991
|
+
this.ctx.$selectedIntentDescriptor.set(null);
|
|
28666
28992
|
}
|
|
28667
28993
|
onCancel() {
|
|
28668
|
-
this
|
|
28994
|
+
this.cancelled.emit();
|
|
28995
|
+
this.ctx.$selectedIntentDescriptor.set(null);
|
|
28669
28996
|
}
|
|
28670
28997
|
buildValidators(schema) {
|
|
28671
28998
|
if (!schema)
|
|
@@ -28744,8 +29071,22 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
28744
29071
|
getErrorsOfField(fieldKey) {
|
|
28745
29072
|
return this.$errors().filter(e => e.fieldKey === fieldKey);
|
|
28746
29073
|
}
|
|
29074
|
+
applyActionSpecificBehavior(descriptor) {
|
|
29075
|
+
if (descriptor.actionCode !== EnumActionCode.CREATE_O)
|
|
29076
|
+
return;
|
|
29077
|
+
const codeCtrl = this.form.get('CODE');
|
|
29078
|
+
const shortCodeCtrl = this.form.get('SHORT_CODE');
|
|
29079
|
+
if (!codeCtrl || !shortCodeCtrl)
|
|
29080
|
+
return;
|
|
29081
|
+
// CODE luôn là UUID, user không nhập
|
|
29082
|
+
const code = crypto.randomUUID();
|
|
29083
|
+
codeCtrl.setValue(code);
|
|
29084
|
+
codeCtrl.disable({ emitEvent: false });
|
|
29085
|
+
// SHORT_CODE default, nhưng user được sửa
|
|
29086
|
+
shortCodeCtrl.setValue(code.substring(0, 8).toUpperCase(), { emitEvent: false });
|
|
29087
|
+
}
|
|
28747
29088
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IntentComposerComponent, deps: [{ token: MultiLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28748
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: IntentComposerComponent, isStandalone: true, selector: "intent-composer", inputs: { $descriptor: { classPropertyName: "$descriptor", publicName: "$descriptor", isSignal: true, isRequired: true, transformFunction: null } }, outputs: {
|
|
29089
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: IntentComposerComponent, isStandalone: true, selector: "intent-composer", inputs: { $descriptor: { classPropertyName: "$descriptor", publicName: "$descriptor", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { intentComposed: "intentComposed", cancelled: "cancelled" }, viewQueries: [{ propertyName: "$defaultOrgItemTpl", first: true, predicate: ["defaultOrgItemTpl"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!--\r\n IntentComposerComponent\r\n Purpose:\r\n - Collect human input for a single OM intent\r\n - Emit IntentDraft only\r\n Must NOT:\r\n - Mutate Omega\r\n - Modify IntentChain\r\n-->\r\n@if (form) {\r\n<form\r\n class=\"intent-composer-container\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"onConfirm()\"\r\n autocomplete=\"off\"\r\n>\r\n\r\n <!-- Header -->\r\n <h3>{{ $descriptor().label }}</h3>\r\n <p class=\"desc\">{{ $descriptor().quickEmoji }} | {{ $descriptor().description }}</p>\r\n\r\n <!-- Inputs -->\r\n <div class=\"intent-inputs\">\r\n\r\n @for (row of $rowableInputs(); track $index) {\r\n\r\n <div class=\"intent-row-grid\">\r\n @for (input of row.inputs; track $index) {\r\n <div\r\n class=\"intent-cell\"\r\n [class.hidden]=\"input.hidden\"\r\n [style.gridColumn]=\"'span ' + (input.flexSize ?? 1)\"\r\n >\r\n\r\n <div class=\"intent-input\">\r\n\r\n <label [class.required]=\"input.validators?.required\">\r\n {{ input.label }}\r\n </label>\r\n\r\n @switch (input.kind) {\r\n\r\n @case ('string') {\r\n <input\r\n class=\"form-control\"\r\n [formControlName]=\"input.key\"\r\n type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" />\r\n }\r\n\r\n @case ('treeId') {\r\n <core-dropdown\r\n [options$]=\"treeIdOptions$\"\r\n [warningDisable]=\"true\"\r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('boolean') {\r\n <core-ios-switcher [formControlName]=\"input.key\" [showOnOffText]=\"false\" [width]=\"66\" />\r\n <!-- <input\r\n type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" /> -->\r\n }\r\n\r\n @case ('number') {\r\n <input\r\n [formControlName]=\"input.key\"\r\n type=\"number\"\r\n (input)=\"onInputChange(input.key, $event.target.valueAsNumber)\" />\r\n }\r\n\r\n @case ('date') {\r\n <core-date-picker \r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('dropdown') {\r\n <core-date-picker \r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('timezoneId') {\r\n <core-timezone \r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('orgGardenReference') {\r\n <dom-oid-factory \r\n [formControlName]=\"input.key\"\r\n /> \r\n }\r\n\r\n @case ('rCode') {\r\n <core-dropdown\r\n [options$]=\"rCodeOptions$\"\r\n [warningDisable]=\"true\"\r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('role') {\r\n <core-dropdown\r\n [options$]=\"roleOptions$\"\r\n [warningDisable]=\"true\"\r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('reference') {\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline\"\r\n (click)=\"onInputChange(input.key, '__REF__')\">\r\n Ch\u1ECDn \u0111\u1ED1i t\u01B0\u1EE3ng\u2026\r\n </button>\r\n }\r\n\r\n @case ('object') {\r\n <textarea\r\n [formControlName]=\"input.key\"\r\n rows=\"3\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\">\r\n </textarea>\r\n }\r\n\r\n @default {\r\n <em class=\"unsupported\">\r\n Ki\u1EC3u input ch\u01B0a \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3\r\n </em>\r\n }\r\n\r\n }\r\n\r\n <!-- START: ERROR SESSION -->\r\n @for (error of getErrorsOfField(input.key); track $index) {\r\n <div class=\"form-control-error\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n }\r\n @if (!getErrorsOfField(input.key).length && !!$checkError()) {\r\n <div> </div>\r\n }\r\n <!-- END: ERROR SESSION -->\r\n\r\n </div> \r\n\r\n </div>\r\n }\r\n </div> \r\n\r\n }\r\n\r\n </div>\r\n\r\n <!-- Actions -->\r\n <div class=\"composer-actions\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-secondary\"\r\n (click)=\"onCancel()\">\r\n Quay l\u1EA1i\r\n </button>\r\n\r\n <button\r\n type=\"submit\"\r\n class=\"btn btn-primary\"\r\n >\r\n X\u00E1c nh\u1EADn\r\n </button>\r\n </div>\r\n\r\n</form>\r\n}\r\n\r\n<ng-template #defaultOrgItemTpl let-node=\"node\" let-level=\"level\">\r\n <div class=\"test-itemTemplateRef\">\r\n {{ node.label }}\r\n </div>\r\n</ng-template>", styles: [".intent-composer-container .intent-inputs .intent-row-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;margin-bottom:12px}.intent-composer-container .intent-inputs .intent-row-grid .intent-cell{box-sizing:border-box;min-width:0}.intent-composer-container .intent-inputs .intent-row-grid .intent-cell.hidden{display:none}.intent-composer-container .intent-inputs .intent-row-grid .intent-input{display:flex;flex-direction:column;margin-top:15px;margin-bottom:15px}.intent-composer-container .intent-inputs .intent-row-grid .intent-input label{color:#464646}.intent-composer-container .intent-inputs .intent-row-grid .intent-input label.required:after{content:\"*\";color:#ff040b}.intent-composer-container .composer-actions{display:flex;justify-content:space-between}.test-itemTemplateRef{padding:15px;background-color:#6495ed;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreTimezoneComponent, selector: "core-timezone" }, { kind: "component", type: DomOIdFactoryComponent, selector: "dom-oid-factory" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
28749
29090
|
}
|
|
28750
29091
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IntentComposerComponent, decorators: [{
|
|
28751
29092
|
type: Component,
|
|
@@ -28758,48 +29099,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
28758
29099
|
CoreTimezoneComponent,
|
|
28759
29100
|
DomOIdFactoryComponent,
|
|
28760
29101
|
TranslatePipe,
|
|
28761
|
-
], template: "<!--\r\n IntentComposerComponent\r\n Purpose:\r\n - Collect human input for a single OM intent\r\n - Emit IntentDraft only\r\n Must NOT:\r\n - Mutate Omega\r\n - Modify IntentChain\r\n-->\r\n@if (form) {\r\n<form\r\n class=\"intent-composer-container\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"onConfirm()\"\r\n autocomplete=\"off\"\r\n>\r\n\r\n <!-- Header -->\r\n <h3>{{ $descriptor().label }}</h3>\r\n <p class=\"desc\">{{ $descriptor().quickEmoji }} | {{ $descriptor().description }}</p>\r\n\r\n <!-- Inputs -->\r\n <div class=\"intent-inputs\">\r\n\r\n @for (row of $rowableInputs(); track $index) {\r\n\r\n <div class=\"intent-row\">\r\n @for (input of row.inputs; track $index) {\r\n <div\r\n class=\"intent-cell\"\r\n [
|
|
29102
|
+
], template: "<!--\r\n IntentComposerComponent\r\n Purpose:\r\n - Collect human input for a single OM intent\r\n - Emit IntentDraft only\r\n Must NOT:\r\n - Mutate Omega\r\n - Modify IntentChain\r\n-->\r\n@if (form) {\r\n<form\r\n class=\"intent-composer-container\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"onConfirm()\"\r\n autocomplete=\"off\"\r\n>\r\n\r\n <!-- Header -->\r\n <h3>{{ $descriptor().label }}</h3>\r\n <p class=\"desc\">{{ $descriptor().quickEmoji }} | {{ $descriptor().description }}</p>\r\n\r\n <!-- Inputs -->\r\n <div class=\"intent-inputs\">\r\n\r\n @for (row of $rowableInputs(); track $index) {\r\n\r\n <div class=\"intent-row-grid\">\r\n @for (input of row.inputs; track $index) {\r\n <div\r\n class=\"intent-cell\"\r\n [class.hidden]=\"input.hidden\"\r\n [style.gridColumn]=\"'span ' + (input.flexSize ?? 1)\"\r\n >\r\n\r\n <div class=\"intent-input\">\r\n\r\n <label [class.required]=\"input.validators?.required\">\r\n {{ input.label }}\r\n </label>\r\n\r\n @switch (input.kind) {\r\n\r\n @case ('string') {\r\n <input\r\n class=\"form-control\"\r\n [formControlName]=\"input.key\"\r\n type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" />\r\n }\r\n\r\n @case ('treeId') {\r\n <core-dropdown\r\n [options$]=\"treeIdOptions$\"\r\n [warningDisable]=\"true\"\r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('boolean') {\r\n <core-ios-switcher [formControlName]=\"input.key\" [showOnOffText]=\"false\" [width]=\"66\" />\r\n <!-- <input\r\n type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" /> -->\r\n }\r\n\r\n @case ('number') {\r\n <input\r\n [formControlName]=\"input.key\"\r\n type=\"number\"\r\n (input)=\"onInputChange(input.key, $event.target.valueAsNumber)\" />\r\n }\r\n\r\n @case ('date') {\r\n <core-date-picker \r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('dropdown') {\r\n <core-date-picker \r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('timezoneId') {\r\n <core-timezone \r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('orgGardenReference') {\r\n <dom-oid-factory \r\n [formControlName]=\"input.key\"\r\n /> \r\n }\r\n\r\n @case ('rCode') {\r\n <core-dropdown\r\n [options$]=\"rCodeOptions$\"\r\n [warningDisable]=\"true\"\r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('role') {\r\n <core-dropdown\r\n [options$]=\"roleOptions$\"\r\n [warningDisable]=\"true\"\r\n [formControlName]=\"input.key\" \r\n />\r\n }\r\n\r\n @case ('reference') {\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline\"\r\n (click)=\"onInputChange(input.key, '__REF__')\">\r\n Ch\u1ECDn \u0111\u1ED1i t\u01B0\u1EE3ng\u2026\r\n </button>\r\n }\r\n\r\n @case ('object') {\r\n <textarea\r\n [formControlName]=\"input.key\"\r\n rows=\"3\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\">\r\n </textarea>\r\n }\r\n\r\n @default {\r\n <em class=\"unsupported\">\r\n Ki\u1EC3u input ch\u01B0a \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3\r\n </em>\r\n }\r\n\r\n }\r\n\r\n <!-- START: ERROR SESSION -->\r\n @for (error of getErrorsOfField(input.key); track $index) {\r\n <div class=\"form-control-error\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n }\r\n @if (!getErrorsOfField(input.key).length && !!$checkError()) {\r\n <div> </div>\r\n }\r\n <!-- END: ERROR SESSION -->\r\n\r\n </div> \r\n\r\n </div>\r\n }\r\n </div> \r\n\r\n }\r\n\r\n </div>\r\n\r\n <!-- Actions -->\r\n <div class=\"composer-actions\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-secondary\"\r\n (click)=\"onCancel()\">\r\n Quay l\u1EA1i\r\n </button>\r\n\r\n <button\r\n type=\"submit\"\r\n class=\"btn btn-primary\"\r\n >\r\n X\u00E1c nh\u1EADn\r\n </button>\r\n </div>\r\n\r\n</form>\r\n}\r\n\r\n<ng-template #defaultOrgItemTpl let-node=\"node\" let-level=\"level\">\r\n <div class=\"test-itemTemplateRef\">\r\n {{ node.label }}\r\n </div>\r\n</ng-template>", styles: [".intent-composer-container .intent-inputs .intent-row-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;margin-bottom:12px}.intent-composer-container .intent-inputs .intent-row-grid .intent-cell{box-sizing:border-box;min-width:0}.intent-composer-container .intent-inputs .intent-row-grid .intent-cell.hidden{display:none}.intent-composer-container .intent-inputs .intent-row-grid .intent-input{display:flex;flex-direction:column;margin-top:15px;margin-bottom:15px}.intent-composer-container .intent-inputs .intent-row-grid .intent-input label{color:#464646}.intent-composer-container .intent-inputs .intent-row-grid .intent-input label.required:after{content:\"*\";color:#ff040b}.intent-composer-container .composer-actions{display:flex;justify-content:space-between}.test-itemTemplateRef{padding:15px;background-color:#6495ed;color:#fff}\n"] }]
|
|
28762
29103
|
}], ctorParameters: () => [{ type: MultiLanguageService }] });
|
|
28763
29104
|
|
|
28764
|
-
class DomDecisionContextService {
|
|
28765
|
-
constructor() {
|
|
28766
|
-
// Omega được cấp từ Editor
|
|
28767
|
-
this.$omega = signal(null);
|
|
28768
|
-
// Derived – không lưu state
|
|
28769
|
-
this.$availableTokens = computed(() => {
|
|
28770
|
-
const omega = this.$omega();
|
|
28771
|
-
if (!omega)
|
|
28772
|
-
return [];
|
|
28773
|
-
const map = new Map();
|
|
28774
|
-
function isEntityToken(v) {
|
|
28775
|
-
return !!v
|
|
28776
|
-
&& typeof v === 'object'
|
|
28777
|
-
&& 'uuid' in v
|
|
28778
|
-
&& 'entityType' in v
|
|
28779
|
-
&& 'token' in v;
|
|
28780
|
-
}
|
|
28781
|
-
for (const intent of omega.inputChain) {
|
|
28782
|
-
for (const value of Object.values(intent.input ?? {})) {
|
|
28783
|
-
if (isEntityToken(value)) {
|
|
28784
|
-
if (!map.has(value.uuid)) {
|
|
28785
|
-
map.set(value.uuid, {
|
|
28786
|
-
...value,
|
|
28787
|
-
producedBySeq: intent.seq
|
|
28788
|
-
});
|
|
28789
|
-
}
|
|
28790
|
-
}
|
|
28791
|
-
}
|
|
28792
|
-
}
|
|
28793
|
-
return Array.from(map.values());
|
|
28794
|
-
});
|
|
28795
|
-
}
|
|
28796
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28797
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService }); }
|
|
28798
|
-
}
|
|
28799
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService, decorators: [{
|
|
28800
|
-
type: Injectable
|
|
28801
|
-
}] });
|
|
28802
|
-
|
|
28803
29105
|
/**
|
|
28804
29106
|
* CoreDomDecisionEditor
|
|
28805
29107
|
*
|
|
@@ -28816,6 +29118,7 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
28816
29118
|
constructor() {
|
|
28817
29119
|
super();
|
|
28818
29120
|
this.ctx = inject(DomDecisionContextService);
|
|
29121
|
+
this.js = inject(JsonService);
|
|
28819
29122
|
this.$omega = signal({
|
|
28820
29123
|
omegaVersion: '1.0',
|
|
28821
29124
|
inputChain: []
|
|
@@ -28824,7 +29127,7 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
28824
29127
|
this.INTENT_DESCRIPTOR_REGISTRY = INTENT_DESCRIPTOR_REGISTRY;
|
|
28825
29128
|
// UI-only popup flag
|
|
28826
29129
|
this.$showIntentComposer = signal(false);
|
|
28827
|
-
this.$selectedIntentDescriptor =
|
|
29130
|
+
this.$selectedIntentDescriptor = this.ctx.$selectedIntentDescriptor;
|
|
28828
29131
|
this.$projection = computed(() => {
|
|
28829
29132
|
const omega = this.$omega();
|
|
28830
29133
|
// Trường hợp cực đoan (chỉ khi anh vẫn cho omega nullable)
|
|
@@ -28860,10 +29163,15 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
28860
29163
|
}
|
|
28861
29164
|
return Array.from(map.values());
|
|
28862
29165
|
});
|
|
28863
|
-
//
|
|
29166
|
+
// 1️⃣ Sync omega → context
|
|
28864
29167
|
effect(() => {
|
|
28865
29168
|
this.ctx.$omega.set(this.$omega());
|
|
28866
29169
|
});
|
|
29170
|
+
// 2️⃣ Emit omega → outer form
|
|
29171
|
+
effect(() => {
|
|
29172
|
+
const omega = this.$omega();
|
|
29173
|
+
this.onChange(JSON.stringify(omega));
|
|
29174
|
+
});
|
|
28867
29175
|
}
|
|
28868
29176
|
writeValue(omega) {
|
|
28869
29177
|
this.value = omega ?? '';
|
|
@@ -28900,7 +29208,22 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
28900
29208
|
}
|
|
28901
29209
|
onViewIntent(e) {
|
|
28902
29210
|
}
|
|
28903
|
-
onRemoveIntent(
|
|
29211
|
+
onRemoveIntent(seq) {
|
|
29212
|
+
this.$omega.update(omega => {
|
|
29213
|
+
// 1️⃣ Lọc bỏ intent cần gỡ
|
|
29214
|
+
const remaining = omega.inputChain
|
|
29215
|
+
.filter(i => i.seq !== seq);
|
|
29216
|
+
// 2️⃣ Reindex seq để đảm bảo liên tục
|
|
29217
|
+
const reindexed = remaining.map((intent, index) => ({
|
|
29218
|
+
...intent,
|
|
29219
|
+
seq: index + 1
|
|
29220
|
+
}));
|
|
29221
|
+
// 3️⃣ Trả về omega mới
|
|
29222
|
+
return {
|
|
29223
|
+
...omega,
|
|
29224
|
+
inputChain: reindexed
|
|
29225
|
+
};
|
|
29226
|
+
});
|
|
28904
29227
|
}
|
|
28905
29228
|
onSelectIntent(descriptor) {
|
|
28906
29229
|
this.$selectedIntentDescriptor.set(descriptor);
|
|
@@ -28938,7 +29261,7 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
28938
29261
|
multi: true,
|
|
28939
29262
|
useExisting: forwardRef(() => CoreDomDecisionEditorComponent),
|
|
28940
29263
|
},
|
|
28941
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"core-dom-decision-editor-container\">\r\n\r\n <!-- ========================= -->\r\n <!-- Decision Overview / Header -->\r\n <!-- ========================= -->\r\n <header class=\"editor-header\">\r\n <div class=\"editor-
|
|
29264
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"core-dom-decision-editor-container\">\r\n\r\n <!-- ========================= -->\r\n <!-- Decision Overview / Header -->\r\n <!-- ========================= -->\r\n <header class=\"editor-header\">\r\n <div class=\"editor-meta\">\r\n <!-- read-only meta derived from Omega -->\r\n <span class=\"meta-item\">\r\n Intent count:\r\n <strong>{{ $projection().intentCount }}</strong>\r\n </span>\r\n\r\n <span class=\"meta-item\">\r\n Tr\u1EA1ng th\u00E1i:\r\n <strong>{{ $projection().validityLabel }}</strong>\r\n </span>\r\n </div>\r\n </header>\r\n\r\n <!-- ========================= -->\r\n <!-- Intent Chain Projection -->\r\n <!-- ========================= -->\r\n <section class=\"intent-chain\">\r\n\r\n <object>Chu\u1ED7i \u00FD \u0111\u1ECBnh</object>\r\n\r\n @if ($projection().intents.length === 0) {\r\n <div class=\"empty-state\">\r\n <p>Ch\u01B0a c\u00F3 \u00FD \u0111\u1ECBnh n\u00E0o trong chu\u1ED7i n\u00E0y.</p>\r\n </div>\r\n } @else {\r\n <ol class=\"intent-list\">\r\n @for (intent of $projection().intents; track $index) {\r\n <li class=\"intent-item\">\r\n <div class=\"intent-card\">\r\n\r\n <!-- Header -->\r\n <div class=\"intent-header\">\r\n <span class=\"intent-seq\">#{{ intent.seq }}</span>\r\n <span class=\"intent-label\">{{ intent.actionLabel }}</span>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"intent-body\">\r\n @if (intent.summary) {\r\n <div class=\"intent-summary\">\r\n {{ intent.summary }}\r\n </div>\r\n } @else {\r\n <div class=\"intent-summary muted\">\r\n (Ch\u01B0a c\u00F3 di\u1EC5n gi\u1EA3i chi ti\u1EBFt)\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"intent-footer\">\r\n <button type=\"button\" class=\"btn btn-ghost\">\r\n Xem\r\n </button>\r\n <button type=\"button\" class=\"btn btn-danger-ghost\" (click)=\"onRemoveIntent(intent.seq)\">\r\n G\u1EE1\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </li>\r\n }\r\n </ol>\r\n }\r\n\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Add Intent Entry Point -->\r\n <!-- ========================= -->\r\n <section class=\"intent-actions-panel\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"onAddIntent()\">\r\n + Th\u00EAm Intent\r\n </button>\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Output Preview (Derived) -->\r\n <!-- ========================= -->\r\n <section class=\"output-preview\">\r\n <p>K\u1EBFt qu\u1EA3 d\u1EF1 ki\u1EBFn</p>\r\n\r\n @if ($projection().outputs.length === 0) {\r\n <div class=\"empty-state\">\r\n <p>Ch\u01B0a c\u00F3 output n\u00E0o \u0111\u01B0\u1EE3c sinh ra.</p>\r\n </div>\r\n } @else {\r\n <ul class=\"output-list\">\r\n @for (output of $projection().outputs; track $index) {\r\n <li class=\"output-item\">\r\n <span class=\"output-key\">{{ output.key }}</span>\r\n <span class=\"output-desc\">{{ output.description }}</span>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Raw Omega (Optional / Debug) -->\r\n <!-- ========================= -->\r\n <details class=\"omega-raw\">\r\n <summary>Xem Omega (raw)</summary>\r\n <pre>{{ $omega() | json }}</pre>\r\n </details>\r\n\r\n @if ($showIntentComposer()) {\r\n <!--\r\n Intent Composer Popup\r\n Purpose: Enter intent composition mode only.\r\n MUST NOT:\r\n - Mutate Omega\r\n - Mutate projection\r\n - Execute OM logic\r\n -->\r\n <div class=\"modal-container\">\r\n <div class=\"modal-content-root\">\r\n <div class=\"intent-composer-entry\">\r\n <p><strong>So\u1EA1n th\u1EA3o Intent m\u1EDBi</strong></p>\r\n\r\n @if ($selectedIntentDescriptor()) {\r\n\r\n <intent-composer\r\n [$descriptor]=\"$selectedIntentDescriptor()!\"\r\n (intentComposed)=\"onIntentDrafted($event)\"\r\n (cancelled)=\"onCancelIntentCompose()\">\r\n </intent-composer>\r\n\r\n } @else {\r\n\r\n <!-- N\u1ED9i dung composer s\u1EBD \u0111\u01B0\u1EE3c c\u1EAFm sau -->\r\n <ul class=\"intent-item-registry\">\r\n @for (intent of INTENT_DESCRIPTOR_REGISTRY; track $index) {\r\n <li class=\"intent-item-point\">\r\n <div class=\"intent-item\"\r\n (click)=\"onSelectIntent(intent)\">\r\n <object>{{ intent.actionCode }} | {{ intent.quickEmoji }}</object>\r\n <strong>{{ intent.label }}</strong>\r\n <p>{{ intent.description }}</p>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n\r\n }\r\n <hr />\r\n <div class=\"popup-actions\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"onCloseIntentComposer()\">\r\n H\u1EE7y\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n</div>", styles: [".core-dom-decision-editor-container .modal-container{overflow:scroll}.core-dom-decision-editor-container .modal-container .modal-content-root{overflow:visible;max-height:unset}.core-dom-decision-editor-container .modal-container .modal-content-root ul.intent-item-registry{padding-left:0;overflow-y:scroll;height:60vh}.core-dom-decision-editor-container .modal-container .modal-content-root ul.intent-item-registry li.intent-item-point{cursor:pointer;padding:8px}.core-dom-decision-editor-container .modal-container .modal-content-root ul.intent-item-registry li.intent-item-point:hover{color:#fff;background-color:#09f}.core-dom-decision-editor-container .intent-chain .intent-list{list-style:none;padding:0;margin:0}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item{margin-bottom:12px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card{border:1px solid #d0d7de;border-radius:4px;background:#fff;padding:10px 12px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-header .intent-seq{background:#e6f0ff;color:#084298;border-radius:3px;padding:2px 6px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-header .intent-label{color:#212529}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-body{padding-left:28px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-body .intent-summary{color:#495057}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-body .intent-summary.muted{color:#adb5bd;font-style:italic}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer{display:flex;gap:8px;margin-top:8px;padding-left:28px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer .btn{border:none;background:none;cursor:pointer;font-size:13px;padding:2px 6px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer .btn-ghost{color:#0d6efd}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer .btn-ghost:hover{text-decoration:underline}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer .btn-danger-ghost{color:#dc3545}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer .btn-danger-ghost:hover{text-decoration:underline}\n"], dependencies: [{ kind: "component", type: IntentComposerComponent, selector: "intent-composer", inputs: ["$descriptor"], outputs: ["intentComposed", "cancelled"] }, { kind: "pipe", type: JsonPipe, name: "json" }] }); }
|
|
28942
29265
|
}
|
|
28943
29266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDomDecisionEditorComponent, decorators: [{
|
|
28944
29267
|
type: Component,
|
|
@@ -28957,7 +29280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
28957
29280
|
multi: true,
|
|
28958
29281
|
useExisting: forwardRef(() => CoreDomDecisionEditorComponent),
|
|
28959
29282
|
},
|
|
28960
|
-
], template: "<div class=\"core-dom-decision-editor-container\">\r\n\r\n <!-- ========================= -->\r\n <!-- Decision Overview / Header -->\r\n <!-- ========================= -->\r\n <header class=\"editor-header\">\r\n <div class=\"editor-
|
|
29283
|
+
], template: "<div class=\"core-dom-decision-editor-container\">\r\n\r\n <!-- ========================= -->\r\n <!-- Decision Overview / Header -->\r\n <!-- ========================= -->\r\n <header class=\"editor-header\">\r\n <div class=\"editor-meta\">\r\n <!-- read-only meta derived from Omega -->\r\n <span class=\"meta-item\">\r\n Intent count:\r\n <strong>{{ $projection().intentCount }}</strong>\r\n </span>\r\n\r\n <span class=\"meta-item\">\r\n Tr\u1EA1ng th\u00E1i:\r\n <strong>{{ $projection().validityLabel }}</strong>\r\n </span>\r\n </div>\r\n </header>\r\n\r\n <!-- ========================= -->\r\n <!-- Intent Chain Projection -->\r\n <!-- ========================= -->\r\n <section class=\"intent-chain\">\r\n\r\n <object>Chu\u1ED7i \u00FD \u0111\u1ECBnh</object>\r\n\r\n @if ($projection().intents.length === 0) {\r\n <div class=\"empty-state\">\r\n <p>Ch\u01B0a c\u00F3 \u00FD \u0111\u1ECBnh n\u00E0o trong chu\u1ED7i n\u00E0y.</p>\r\n </div>\r\n } @else {\r\n <ol class=\"intent-list\">\r\n @for (intent of $projection().intents; track $index) {\r\n <li class=\"intent-item\">\r\n <div class=\"intent-card\">\r\n\r\n <!-- Header -->\r\n <div class=\"intent-header\">\r\n <span class=\"intent-seq\">#{{ intent.seq }}</span>\r\n <span class=\"intent-label\">{{ intent.actionLabel }}</span>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"intent-body\">\r\n @if (intent.summary) {\r\n <div class=\"intent-summary\">\r\n {{ intent.summary }}\r\n </div>\r\n } @else {\r\n <div class=\"intent-summary muted\">\r\n (Ch\u01B0a c\u00F3 di\u1EC5n gi\u1EA3i chi ti\u1EBFt)\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"intent-footer\">\r\n <button type=\"button\" class=\"btn btn-ghost\">\r\n Xem\r\n </button>\r\n <button type=\"button\" class=\"btn btn-danger-ghost\" (click)=\"onRemoveIntent(intent.seq)\">\r\n G\u1EE1\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </li>\r\n }\r\n </ol>\r\n }\r\n\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Add Intent Entry Point -->\r\n <!-- ========================= -->\r\n <section class=\"intent-actions-panel\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"onAddIntent()\">\r\n + Th\u00EAm Intent\r\n </button>\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Output Preview (Derived) -->\r\n <!-- ========================= -->\r\n <section class=\"output-preview\">\r\n <p>K\u1EBFt qu\u1EA3 d\u1EF1 ki\u1EBFn</p>\r\n\r\n @if ($projection().outputs.length === 0) {\r\n <div class=\"empty-state\">\r\n <p>Ch\u01B0a c\u00F3 output n\u00E0o \u0111\u01B0\u1EE3c sinh ra.</p>\r\n </div>\r\n } @else {\r\n <ul class=\"output-list\">\r\n @for (output of $projection().outputs; track $index) {\r\n <li class=\"output-item\">\r\n <span class=\"output-key\">{{ output.key }}</span>\r\n <span class=\"output-desc\">{{ output.description }}</span>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Raw Omega (Optional / Debug) -->\r\n <!-- ========================= -->\r\n <details class=\"omega-raw\">\r\n <summary>Xem Omega (raw)</summary>\r\n <pre>{{ $omega() | json }}</pre>\r\n </details>\r\n\r\n @if ($showIntentComposer()) {\r\n <!--\r\n Intent Composer Popup\r\n Purpose: Enter intent composition mode only.\r\n MUST NOT:\r\n - Mutate Omega\r\n - Mutate projection\r\n - Execute OM logic\r\n -->\r\n <div class=\"modal-container\">\r\n <div class=\"modal-content-root\">\r\n <div class=\"intent-composer-entry\">\r\n <p><strong>So\u1EA1n th\u1EA3o Intent m\u1EDBi</strong></p>\r\n\r\n @if ($selectedIntentDescriptor()) {\r\n\r\n <intent-composer\r\n [$descriptor]=\"$selectedIntentDescriptor()!\"\r\n (intentComposed)=\"onIntentDrafted($event)\"\r\n (cancelled)=\"onCancelIntentCompose()\">\r\n </intent-composer>\r\n\r\n } @else {\r\n\r\n <!-- N\u1ED9i dung composer s\u1EBD \u0111\u01B0\u1EE3c c\u1EAFm sau -->\r\n <ul class=\"intent-item-registry\">\r\n @for (intent of INTENT_DESCRIPTOR_REGISTRY; track $index) {\r\n <li class=\"intent-item-point\">\r\n <div class=\"intent-item\"\r\n (click)=\"onSelectIntent(intent)\">\r\n <object>{{ intent.actionCode }} | {{ intent.quickEmoji }}</object>\r\n <strong>{{ intent.label }}</strong>\r\n <p>{{ intent.description }}</p>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n\r\n }\r\n <hr />\r\n <div class=\"popup-actions\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"onCloseIntentComposer()\">\r\n H\u1EE7y\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n</div>", styles: [".core-dom-decision-editor-container .modal-container{overflow:scroll}.core-dom-decision-editor-container .modal-container .modal-content-root{overflow:visible;max-height:unset}.core-dom-decision-editor-container .modal-container .modal-content-root ul.intent-item-registry{padding-left:0;overflow-y:scroll;height:60vh}.core-dom-decision-editor-container .modal-container .modal-content-root ul.intent-item-registry li.intent-item-point{cursor:pointer;padding:8px}.core-dom-decision-editor-container .modal-container .modal-content-root ul.intent-item-registry li.intent-item-point:hover{color:#fff;background-color:#09f}.core-dom-decision-editor-container .intent-chain .intent-list{list-style:none;padding:0;margin:0}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item{margin-bottom:12px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card{border:1px solid #d0d7de;border-radius:4px;background:#fff;padding:10px 12px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-header .intent-seq{background:#e6f0ff;color:#084298;border-radius:3px;padding:2px 6px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-header .intent-label{color:#212529}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-body{padding-left:28px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-body .intent-summary{color:#495057}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-body .intent-summary.muted{color:#adb5bd;font-style:italic}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer{display:flex;gap:8px;margin-top:8px;padding-left:28px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer .btn{border:none;background:none;cursor:pointer;font-size:13px;padding:2px 6px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer .btn-ghost{color:#0d6efd}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer .btn-ghost:hover{text-decoration:underline}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer .btn-danger-ghost{color:#dc3545}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-footer .btn-danger-ghost:hover{text-decoration:underline}\n"] }]
|
|
28961
29284
|
}], ctorParameters: () => [] });
|
|
28962
29285
|
|
|
28963
29286
|
class CoreControlComponent extends BaseComponent {
|
|
@@ -29097,7 +29420,7 @@ class CoreControlComponent extends BaseComponent {
|
|
|
29097
29420
|
}
|
|
29098
29421
|
}
|
|
29099
29422
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlComponent, deps: [{ token: MultiLanguageService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29100
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlComponent, isStandalone: true, selector: "core-control", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, host: { listeners: { "window:click": "onWindowClick()" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"FORM_ARRAY\") {\r\n <core-form-array\r\n [formArrayName]=\"control.field!\"\r\n [parentFormGroup]=\"form\"\r\n [formArray]=\"formArray\"\r\n [formArrayIdentityField]=\"control.formArrayIdentityField ?? 'id'\"\r\n [config]=\"control.formArraySections! ?? []\"\r\n [disabled]=\"control.disabled!\"\r\n [readonly]=\"control.readonly!\"\r\n [addNewMode$]=\"control.addNewMode$!\"\r\n [removeDisabledIf]=\"control.removeDisabledIf!\"\r\n [removeDisabledIfMessage]=\"control.removeDisabledIfMessage!\"\r\n [checkError$]=\"checkError$\"\r\n >\r\n </core-form-array>\r\n }\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [required]=\"required\" [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [class.required-highlight]=\"!!required\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [required]=\"required\" [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [required]=\"required\" [formControlName]=\"control.field\" [showPlaceholder]=\"control.showPlaceholder!\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\" [placeholder]=\"control.placeholder! || ''\"></core-date-picker>\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$ || !!control.optionApiDriven) {\r\n <core-dropdown \r\n [required]=\"required\" \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ | optionApiDriven detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [required]=\"required\" [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [required]=\"required\" [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [required]=\"required\" [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n } @else {\r\n <div class=\"dev-declaration\">Please add uploadFileType</div>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [required]=\"required\" [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [required]=\"required\" [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [tableHeight]=\"control.tableHeight ?? 300\"\r\n [liteMode]=\"control.liteMode ?? false\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [required]=\"required\" [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [required]=\"required\" [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [required]=\"required\" [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker [required]=\"required\" [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"STICKER_COLLECTION\") {\r\n <core-sticker-collection\r\n [formControlName]=\"control.field\"\r\n [required]=\"required\"\r\n [$items]=\"control.stickerCollectionItems!\"\r\n [$shownFrom]=\"control.stickerCollectionShownFrom!\"\r\n [$tooltipFrom]=\"control.stickerCollectionTooltipFrom!\"\r\n [$initialChecked]=\"control.stickerCollectionInitialChecked!\"\r\n >\r\n </core-sticker-collection>\r\n }\r\n @case (\"DOM_DECISION_EDITOR\") {\r\n <core-dom-decision-editor />\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n @case (\"LIQUID_WYSIWYG\") {\r\n <core-liquid-wysiwyg\r\n [formControlName]=\"control.field\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [$liquidOptions]=\"control.liquidOptions!\"\r\n [$textareaRows]=\"control.textareaRows!\"\r\n [$showLiquidSourceOnly]=\"control.showLiquidSourceOnly!\"\r\n [$isForWorkflowEmail]=\"control.isForWorkflowEmail!\"\r\n />\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$4.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreFormArrayComponent, selector: "core-form-array", inputs: ["formArrayName", "parentFormGroup", "formArray", "config", "checkError$", "formArrayIdentityField", "addNewMode$", "readonly", "disabled", "removeDisabledIf", "removeDisabledIfMessage"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options", "placeholder"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick", "selfEnrichmentApiDriven", "selfEnrichmentApi", "selfEnrichmentHttpVerb", "selfEnrichmentHttpPayload", "selfEnrichmentShownFrom"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }, { kind: "component", type: CoreAttachmentComponent, selector: "core-attachment", inputs: ["assignTo", "readonly", "valueToShow", "placeholder", "upFlag$", "downFlag$"] }, { kind: "component", type: CoreGridBufferComponent, selector: "core-grid-buffer", inputs: ["padding", "placeholder", "tableHeight", "liteMode", "formSections", "gridColumns"], outputs: ["onBufferFormCreated"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical", "columnCount", "gapY", "defaultValue"] }, { kind: "component", type: CoreMccComponent, selector: "core-mcc", inputs: ["height", "columns", "shownFrom", "apiDefinition", "getByIdApi", "outerParam$", "selectedRow$", "outerFilterOperators", "outerInOperators", "placeholder"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign", "placeholder"], outputs: ["onLeftFocus"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "disabled", "relativeMode"] }, { kind: "component", type: CoreTopicPickerComponent, selector: "core-topic-picker", inputs: ["popupHeight", "getByIdApi"] }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }, { kind: "component", type: CoreLiquidWysiwygComponent, selector: "core-liquid-wysiwyg", inputs: ["$liquidOptions", "$textareaRows", "$height", "$readonly", "$showLiquidSourceOnly", "$isForWorkflowEmail", "getByIdObject$", "placeholder"] }, { kind: "component", type: CoreStickerCollectionComponent, selector: "core-sticker-collection", inputs: ["$items", "$shownFrom", "$translateShownFrom", "$tooltipFrom", "$initialChecked", "$showMore", "$showMoreTooltip", "$hideShowMoreIfNotSelected", "$enableFilter", "$enableQuickCheck"], outputs: ["$checkedChange", "$onShowMore"] }, { kind: "component", type: CoreDomDecisionEditorComponent, selector: "core-dom-decision-editor" }, { kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "color", "backgroundColor", "hold$"] }] }); }
|
|
29423
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlComponent, isStandalone: true, selector: "core-control", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, host: { listeners: { "window:click": "onWindowClick()" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"FORM_ARRAY\") {\r\n <core-form-array\r\n [formArrayName]=\"control.field!\"\r\n [parentFormGroup]=\"form\"\r\n [formArray]=\"formArray\"\r\n [formArrayIdentityField]=\"control.formArrayIdentityField ?? 'id'\"\r\n [config]=\"control.formArraySections! ?? []\"\r\n [disabled]=\"control.disabled!\"\r\n [readonly]=\"control.readonly!\"\r\n [addNewMode$]=\"control.addNewMode$!\"\r\n [removeDisabledIf]=\"control.removeDisabledIf!\"\r\n [removeDisabledIfMessage]=\"control.removeDisabledIfMessage!\"\r\n [checkError$]=\"checkError$\"\r\n >\r\n </core-form-array>\r\n }\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [required]=\"required\" [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [class.required-highlight]=\"!!required\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [required]=\"required\" [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n\r\n <!-- * DATEPICKER\r\n *\r\n * Generic date picker without civil-time semantics.\r\n *\r\n * \u26A0\uFE0F Intended for legacy or technical forms only.\r\n * \u26A0\uFE0F Business forms SHOULD prefer:\r\n * - CIVIL_DATE_PICKER_START\r\n * - CIVIL_DATE_PICKER_INCLUSIVE_END\r\n *\r\n * This variant does NOT normalize time boundaries. -->\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker \r\n [required]=\"required\" \r\n [formControlName]=\"control.field\" \r\n [showPlaceholder]=\"control.showPlaceholder!\" \r\n [rangeLimit]=\"control.rangeLimit!\" \r\n [popupAlign]=\"control.popupAlign!\" \r\n [$rangePoint]=\"control.$rangePoint!\"\r\n [placeholder]=\"control.placeholder! || ''\" \r\n />\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$ || !!control.optionApiDriven) {\r\n <core-dropdown \r\n [required]=\"required\" \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ | optionApiDriven detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [required]=\"required\" [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [required]=\"required\" [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [required]=\"required\" [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n } @else {\r\n <div class=\"dev-declaration\">Please add uploadFileType</div>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [required]=\"required\" [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [required]=\"required\" [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [tableHeight]=\"control.tableHeight ?? 300\"\r\n [liteMode]=\"control.liteMode ?? false\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [required]=\"required\" [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [required]=\"required\" [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [required]=\"required\" [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker [required]=\"required\" [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"STICKER_COLLECTION\") {\r\n <core-sticker-collection\r\n [formControlName]=\"control.field\"\r\n [required]=\"required\"\r\n [$items]=\"control.stickerCollectionItems!\"\r\n [$shownFrom]=\"control.stickerCollectionShownFrom!\"\r\n [$tooltipFrom]=\"control.stickerCollectionTooltipFrom!\"\r\n [$initialChecked]=\"control.stickerCollectionInitialChecked!\"\r\n >\r\n </core-sticker-collection>\r\n }\r\n @case (\"DOM_DECISION_EDITOR\") {\r\n <core-dom-decision-editor [required]=\"required\" [formControlName]=\"control.field\" />\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n @case (\"LIQUID_WYSIWYG\") {\r\n <core-liquid-wysiwyg\r\n [formControlName]=\"control.field\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [$liquidOptions]=\"control.liquidOptions!\"\r\n [$textareaRows]=\"control.textareaRows!\"\r\n [$showLiquidSourceOnly]=\"control.showLiquidSourceOnly!\"\r\n [$isForWorkflowEmail]=\"control.isForWorkflowEmail!\"\r\n />\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$4.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreFormArrayComponent, selector: "core-form-array", inputs: ["formArrayName", "parentFormGroup", "formArray", "config", "checkError$", "formArrayIdentityField", "addNewMode$", "readonly", "disabled", "removeDisabledIf", "removeDisabledIfMessage"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options", "placeholder"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick", "selfEnrichmentApiDriven", "selfEnrichmentApi", "selfEnrichmentHttpVerb", "selfEnrichmentHttpPayload", "selfEnrichmentShownFrom"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }, { kind: "component", type: CoreAttachmentComponent, selector: "core-attachment", inputs: ["assignTo", "readonly", "valueToShow", "placeholder", "upFlag$", "downFlag$"] }, { kind: "component", type: CoreGridBufferComponent, selector: "core-grid-buffer", inputs: ["padding", "placeholder", "tableHeight", "liteMode", "formSections", "gridColumns"], outputs: ["onBufferFormCreated"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical", "columnCount", "gapY", "defaultValue"] }, { kind: "component", type: CoreMccComponent, selector: "core-mcc", inputs: ["height", "columns", "shownFrom", "apiDefinition", "getByIdApi", "outerParam$", "selectedRow$", "outerFilterOperators", "outerInOperators", "placeholder"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign", "placeholder"], outputs: ["onLeftFocus"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "disabled", "relativeMode"] }, { kind: "component", type: CoreTopicPickerComponent, selector: "core-topic-picker", inputs: ["popupHeight", "getByIdApi"] }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }, { kind: "component", type: CoreLiquidWysiwygComponent, selector: "core-liquid-wysiwyg", inputs: ["$liquidOptions", "$textareaRows", "$height", "$readonly", "$showLiquidSourceOnly", "$isForWorkflowEmail", "getByIdObject$", "placeholder"] }, { kind: "component", type: CoreStickerCollectionComponent, selector: "core-sticker-collection", inputs: ["$items", "$shownFrom", "$translateShownFrom", "$tooltipFrom", "$initialChecked", "$showMore", "$showMoreTooltip", "$hideShowMoreIfNotSelected", "$enableFilter", "$enableQuickCheck"], outputs: ["$checkedChange", "$onShowMore"] }, { kind: "component", type: CoreDomDecisionEditorComponent, selector: "core-dom-decision-editor" }, { kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "color", "backgroundColor", "hold$"] }] }); }
|
|
29101
29424
|
}
|
|
29102
29425
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlComponent, decorators: [{
|
|
29103
29426
|
type: Component,
|
|
@@ -29132,7 +29455,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
29132
29455
|
CoreStickerCollectionComponent,
|
|
29133
29456
|
CoreDomDecisionEditorComponent,
|
|
29134
29457
|
HtmlTooltipDirective
|
|
29135
|
-
], template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"FORM_ARRAY\") {\r\n <core-form-array\r\n [formArrayName]=\"control.field!\"\r\n [parentFormGroup]=\"form\"\r\n [formArray]=\"formArray\"\r\n [formArrayIdentityField]=\"control.formArrayIdentityField ?? 'id'\"\r\n [config]=\"control.formArraySections! ?? []\"\r\n [disabled]=\"control.disabled!\"\r\n [readonly]=\"control.readonly!\"\r\n [addNewMode$]=\"control.addNewMode$!\"\r\n [removeDisabledIf]=\"control.removeDisabledIf!\"\r\n [removeDisabledIfMessage]=\"control.removeDisabledIfMessage!\"\r\n [checkError$]=\"checkError$\"\r\n >\r\n </core-form-array>\r\n }\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [required]=\"required\" [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [class.required-highlight]=\"!!required\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [required]=\"required\" [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [required]=\"required\" [formControlName]=\"control.field\" [showPlaceholder]=\"control.showPlaceholder!\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\" [placeholder]=\"control.placeholder! || ''\"></core-date-picker>\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$ || !!control.optionApiDriven) {\r\n <core-dropdown \r\n [required]=\"required\" \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ | optionApiDriven detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [required]=\"required\" [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [required]=\"required\" [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [required]=\"required\" [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n } @else {\r\n <div class=\"dev-declaration\">Please add uploadFileType</div>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [required]=\"required\" [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [required]=\"required\" [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [tableHeight]=\"control.tableHeight ?? 300\"\r\n [liteMode]=\"control.liteMode ?? false\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [required]=\"required\" [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [required]=\"required\" [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [required]=\"required\" [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker [required]=\"required\" [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"STICKER_COLLECTION\") {\r\n <core-sticker-collection\r\n [formControlName]=\"control.field\"\r\n [required]=\"required\"\r\n [$items]=\"control.stickerCollectionItems!\"\r\n [$shownFrom]=\"control.stickerCollectionShownFrom!\"\r\n [$tooltipFrom]=\"control.stickerCollectionTooltipFrom!\"\r\n [$initialChecked]=\"control.stickerCollectionInitialChecked!\"\r\n >\r\n </core-sticker-collection>\r\n }\r\n @case (\"DOM_DECISION_EDITOR\") {\r\n <core-dom-decision-editor />\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n @case (\"LIQUID_WYSIWYG\") {\r\n <core-liquid-wysiwyg\r\n [formControlName]=\"control.field\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [$liquidOptions]=\"control.liquidOptions!\"\r\n [$textareaRows]=\"control.textareaRows!\"\r\n [$showLiquidSourceOnly]=\"control.showLiquidSourceOnly!\"\r\n [$isForWorkflowEmail]=\"control.isForWorkflowEmail!\"\r\n />\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"] }]
|
|
29458
|
+
], template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"FORM_ARRAY\") {\r\n <core-form-array\r\n [formArrayName]=\"control.field!\"\r\n [parentFormGroup]=\"form\"\r\n [formArray]=\"formArray\"\r\n [formArrayIdentityField]=\"control.formArrayIdentityField ?? 'id'\"\r\n [config]=\"control.formArraySections! ?? []\"\r\n [disabled]=\"control.disabled!\"\r\n [readonly]=\"control.readonly!\"\r\n [addNewMode$]=\"control.addNewMode$!\"\r\n [removeDisabledIf]=\"control.removeDisabledIf!\"\r\n [removeDisabledIfMessage]=\"control.removeDisabledIfMessage!\"\r\n [checkError$]=\"checkError$\"\r\n >\r\n </core-form-array>\r\n }\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [required]=\"required\" [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [class.required-highlight]=\"!!required\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [required]=\"required\" [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n\r\n <!-- * DATEPICKER\r\n *\r\n * Generic date picker without civil-time semantics.\r\n *\r\n * \u26A0\uFE0F Intended for legacy or technical forms only.\r\n * \u26A0\uFE0F Business forms SHOULD prefer:\r\n * - CIVIL_DATE_PICKER_START\r\n * - CIVIL_DATE_PICKER_INCLUSIVE_END\r\n *\r\n * This variant does NOT normalize time boundaries. -->\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker \r\n [required]=\"required\" \r\n [formControlName]=\"control.field\" \r\n [showPlaceholder]=\"control.showPlaceholder!\" \r\n [rangeLimit]=\"control.rangeLimit!\" \r\n [popupAlign]=\"control.popupAlign!\" \r\n [$rangePoint]=\"control.$rangePoint!\"\r\n [placeholder]=\"control.placeholder! || ''\" \r\n />\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$ || !!control.optionApiDriven) {\r\n <core-dropdown \r\n [required]=\"required\" \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ | optionApiDriven detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [required]=\"required\" [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [required]=\"required\" [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [required]=\"required\" [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n } @else {\r\n <div class=\"dev-declaration\">Please add uploadFileType</div>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [required]=\"required\" [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [required]=\"required\" [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [tableHeight]=\"control.tableHeight ?? 300\"\r\n [liteMode]=\"control.liteMode ?? false\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [required]=\"required\" [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [required]=\"required\" [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [required]=\"required\" [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker [required]=\"required\" [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"STICKER_COLLECTION\") {\r\n <core-sticker-collection\r\n [formControlName]=\"control.field\"\r\n [required]=\"required\"\r\n [$items]=\"control.stickerCollectionItems!\"\r\n [$shownFrom]=\"control.stickerCollectionShownFrom!\"\r\n [$tooltipFrom]=\"control.stickerCollectionTooltipFrom!\"\r\n [$initialChecked]=\"control.stickerCollectionInitialChecked!\"\r\n >\r\n </core-sticker-collection>\r\n }\r\n @case (\"DOM_DECISION_EDITOR\") {\r\n <core-dom-decision-editor [required]=\"required\" [formControlName]=\"control.field\" />\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [selfEnrichmentApiDriven]=\"control.selfEnrichmentApiDriven!\"\r\n [selfEnrichmentApi]=\"control.selfEnrichmentApi!\"\r\n [selfEnrichmentHttpVerb]=\"control.selfEnrichmentHttpVerb!\"\r\n [selfEnrichmentHttpPayload]=\"control.selfEnrichmentHttpPayload!\"\r\n [selfEnrichmentShownFrom]=\"control.selfEnrichmentShownFrom!\"\r\n\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n @case (\"LIQUID_WYSIWYG\") {\r\n <core-liquid-wysiwyg\r\n [formControlName]=\"control.field\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [$liquidOptions]=\"control.liquidOptions!\"\r\n [$textareaRows]=\"control.textareaRows!\"\r\n [$showLiquidSourceOnly]=\"control.showLiquidSourceOnly!\"\r\n [$isForWorkflowEmail]=\"control.isForWorkflowEmail!\"\r\n />\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"] }]
|
|
29136
29459
|
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: AlertService }], propDecorators: { control: [{
|
|
29137
29460
|
type: Input
|
|
29138
29461
|
}], form: [{
|
|
@@ -29907,6 +30230,17 @@ class CorePageEditComponent {
|
|
|
29907
30230
|
}));
|
|
29908
30231
|
}
|
|
29909
30232
|
});
|
|
30233
|
+
setTimeout(() => {
|
|
30234
|
+
if (isDevMode()) {
|
|
30235
|
+
const missingRangePoint = this.sections
|
|
30236
|
+
.some(s => s.rows
|
|
30237
|
+
.some(r => r
|
|
30238
|
+
.some(c => c.controlType === EnumFormBaseContolType.DATEPICKER && !c.$rangePoint)));
|
|
30239
|
+
if (missingRangePoint) {
|
|
30240
|
+
this.alertService.error(`Thiếu $rangePoint: Mọi Civil Date Picker phải xác định 'start' hoặc 'inclusive-end'`, { ...noneAutoClosedAlertOptions, dedupeKey: 'missing-civil-date-range-point' });
|
|
30241
|
+
}
|
|
30242
|
+
}
|
|
30243
|
+
});
|
|
29910
30244
|
}
|
|
29911
30245
|
toggleReloadFlagForTheCaller(id) {
|
|
29912
30246
|
const instancesFilter = this.corePageListService.instances.filter((x) => x.instanceNumber === this.listInstance);
|
|
@@ -31886,7 +32220,7 @@ class CoreParamControlComponent extends BaseComponent {
|
|
|
31886
32220
|
this.ngModelSubscription?.unsubscribe();
|
|
31887
32221
|
}
|
|
31888
32222
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreParamControlComponent, deps: [{ token: MultiLanguageService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31889
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreParamControlComponent, isStandalone: true, selector: "core-param-control", inputs: { control: "control", enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters" }, host: { listeners: { "window:click": "onWindowClick()" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-param-control-container\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label'\" *ngIf=\"control.controlType==='CHECKBOX'\">\r\n </label>\r\n <!-- ('UI.COMMON_FILTER' | translate: lang) + -->\r\n <label *ngIf=\"control.name==='dateFrom'\">\r\n {{\r\n\r\n (control.label | translate: lang) +\r\n ('UI.COMMON_FROM' | translate: lang)\r\n }}\r\n </label>\r\n\r\n <label *ngIf=\"control.name==='dateTo'\">\r\n {{\r\n 'UI.COMMON_TO' | translate: lang\r\n }}\r\n </label>\r\n <label *ngIf=\"control.controlType=='DATEPICKER' && control.name!=='dateFrom' && control.name!=='dateTo'\">\r\n {{ control.label | translate: lang }}\r\n </label>\r\n\r\n <label *ngIf=\"control.controlType!=='CHECKBOX' && control.controlType!=='DATEPICKER' && control.controlType!=='REPORT_FORMAT'\">\r\n {{ control.label | translate: lang }}\r\n </label>\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n @switch (control.controlType) {\r\n\r\n @case ('SEEKER') {\r\n @if (control.seekerSourceType==='ORGANIZATION_UNIT_SEEK') {\r\n <core-org-param [(ngModel)]=\"control.ngModel\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\"></core-org-param>\r\n }\r\n @else {\r\n <!-- This code works,\r\n To do: Avoid hard-coding such as 'id', 'contractNo' and 300 etc -->\r\n <core-form-control-seeker \r\n [paramMode]=\"true\"\r\n [boundFrom]=\"control.boundFrom || 'id'\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [multiMode]=\"control.multiMode!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [getByIdApi]=\"control.getByIdApi!\"\r\n [excludeExistingList]=\"true\"\r\n [multiModeTableHeight]=\"300\" \r\n [placeholder]=\"control.placeholder!\"\r\n [click$]=\"control.click$!\"\r\n [disabledDoubleClick]=\"control.disabledDoubleClick!\"\r\n [(ngModel)]=\"control.ngModel\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\">\r\n </core-form-control-seeker>\r\n }\r\n }\r\n\r\n @case ('TEXTBOX') {\r\n\r\n @if (control.type==='date') {\r\n <input [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [type]=\"control.type\" [disabled]=\"!!control.disabled!\" class=\"form-control\" useValueAsDate>\r\n }\r\n\r\n @if (control.type==='number') {\r\n <input [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [type]=\"control.type\" [disabled]=\"!!control.disabled!\" class=\"form-control\" [step]=\"control.step || '1'\">\r\n }\r\n\r\n @if (control.type!=='date' && control.type!=='number') {\r\n <input [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [type]=\"control.type\" [disabled]=\"!!control.disabled!\" class=\"form-control\">\r\n }\r\n\r\n }\r\n\r\n @case ('CURRENCY') {\r\n <core-currency-input [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [disabled]=\"!!control.disabled!\"></core-currency-input>\r\n }\r\n\r\n @case ('CHECKBOX') {\r\n <core-checkbox [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [text]=\"control.label\" [inputValue]=\"control.value\" [disabled]=\"!!control.disabled!\"></core-checkbox>\r\n }\r\n\r\n @case ('DATEPICKER') {\r\n <core-date-picker [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [rangeLimit]=\"control.rangeLimit!\"\r\n [enableTimeZoneConverter]=\"enableTimeZoneConverterForDateTimePeriodParameters\" [disabled]=\"!!control.disabled!\"\r\n [popupAlign]=\"control.popupAlign!\"></core-date-picker>\r\n }\r\n\r\n @case ('DROPDOWN') {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [(ngModel)]=\"control.ngModel\" [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\" [paramMode]=\"true\"\r\n [options$]=\"control.dropdownOptions$!\"></core-dropdown>\r\n }\r\n }\r\n\r\n @case ('CHECKLIST') {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [(ngModel)]=\"control.ngModel\" [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\" [paramMode]=\"true\"\r\n [options$]=\"control.checklistOptions$!\"></core-checklist>\r\n }\r\n }\r\n\r\n @case ('ORG_PARAM_DROPDOWN') {\r\n <core-org-param-dropdown [accessorMode]=\"control.accessorMode!\" [(ngModel)]=\"control.ngModel\"\r\n [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\"></core-org-param-dropdown>\r\n }\r\n\r\n @case ('MONTHSELECTOR') {\r\n <core-month-selector [(ngModel)]=\"control.ngModel\" [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\" [align]=\"'left'\"></core-month-selector>\r\n }\r\n\r\n @case ('YEARSELECTOR') {\r\n <core-year-selector [(ngModel)]=\"control.ngModel\" [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\" [align]=\"'left'\"></core-year-selector>\r\n }\r\n\r\n @case ('REPORT_FORMAT') {\r\n <core-file-format-picker [(ngModel)]=\"control.ngModel\" [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\"></core-file-format-picker>\r\n }\r\n\r\n }\r\n\r\n</div>", styles: [".core-param-control-container{padding-left:0;font-size:13px}.core-param-control-container label{color:#848484}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled"] }, { kind: "component", type: CoreOrgParamComponent, selector: "core-org-param", inputs: ["accessorMode"] }, { kind: "component", type: CoreOrgParamDropdownComponent, selector: "core-org-param-dropdown", inputs: ["accessorMode", "dropdownHeight"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "component", type: CoreYearSelectorComponent, selector: "core-year-selector", inputs: ["align"], outputs: ["onYearClick"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick", "selfEnrichmentApiDriven", "selfEnrichmentApi", "selfEnrichmentHttpVerb", "selfEnrichmentHttpPayload", "selfEnrichmentShownFrom"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreFileFormatPickerComponent, selector: "core-file-format-picker" }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign", "placeholder"], outputs: ["onLeftFocus"] }] }); }
|
|
32223
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreParamControlComponent, isStandalone: true, selector: "core-param-control", inputs: { control: "control", enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters" }, host: { listeners: { "window:click": "onWindowClick()" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-param-control-container\">\r\n\r\n <!-- START: LABEL SESSION-->\r\n <label [class]=\"'control-label'\" *ngIf=\"control.controlType==='CHECKBOX'\">\r\n </label>\r\n <!-- ('UI.COMMON_FILTER' | translate: lang) + -->\r\n <label *ngIf=\"control.name==='dateFrom'\">\r\n {{\r\n\r\n (control.label | translate: lang) +\r\n ('UI.COMMON_FROM' | translate: lang)\r\n }}\r\n </label>\r\n\r\n <label *ngIf=\"control.name==='dateTo'\">\r\n {{\r\n 'UI.COMMON_TO' | translate: lang\r\n }}\r\n </label>\r\n <label *ngIf=\"control.controlType=='DATEPICKER' && control.name!=='dateFrom' && control.name!=='dateTo'\">\r\n {{ control.label | translate: lang }}\r\n </label>\r\n\r\n <label *ngIf=\"control.controlType!=='CHECKBOX' && control.controlType!=='DATEPICKER' && control.controlType!=='REPORT_FORMAT'\">\r\n {{ control.label | translate: lang }}\r\n </label>\r\n <!-- START: LABEL SESSION-->\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n @switch (control.controlType) {\r\n\r\n @case ('SEEKER') {\r\n @if (control.seekerSourceType==='ORGANIZATION_UNIT_SEEK') {\r\n <core-org-param [(ngModel)]=\"control.ngModel\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\"></core-org-param>\r\n }\r\n @else {\r\n <!-- This code works,\r\n To do: Avoid hard-coding such as 'id', 'contractNo' and 300 etc -->\r\n <core-form-control-seeker \r\n [paramMode]=\"true\"\r\n [boundFrom]=\"control.boundFrom || 'id'\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [multiMode]=\"control.multiMode!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [getByIdApi]=\"control.getByIdApi!\"\r\n [excludeExistingList]=\"true\"\r\n [multiModeTableHeight]=\"300\" \r\n [placeholder]=\"control.placeholder!\"\r\n [click$]=\"control.click$!\"\r\n [disabledDoubleClick]=\"control.disabledDoubleClick!\"\r\n [(ngModel)]=\"control.ngModel\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\">\r\n </core-form-control-seeker>\r\n }\r\n }\r\n\r\n @case ('TEXTBOX') {\r\n\r\n @if (control.type==='date') {\r\n <input [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [type]=\"control.type\" [disabled]=\"!!control.disabled!\" class=\"form-control\" useValueAsDate>\r\n }\r\n\r\n @if (control.type==='number') {\r\n <input [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [type]=\"control.type\" [disabled]=\"!!control.disabled!\" class=\"form-control\" [step]=\"control.step || '1'\">\r\n }\r\n\r\n @if (control.type!=='date' && control.type!=='number') {\r\n <input [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [type]=\"control.type\" [disabled]=\"!!control.disabled!\" class=\"form-control\">\r\n }\r\n\r\n }\r\n\r\n @case ('CURRENCY') {\r\n <core-currency-input [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [disabled]=\"!!control.disabled!\"></core-currency-input>\r\n }\r\n\r\n @case ('CHECKBOX') {\r\n <core-checkbox [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [text]=\"control.label\" [inputValue]=\"control.value\" [disabled]=\"!!control.disabled!\"></core-checkbox>\r\n }\r\n\r\n @case ('DATEPICKER') {\r\n <core-date-picker [(ngModel)]=\"control.ngModel\" (ngModelChange)=\"control.ngModelChange(control.name, $event)\"\r\n [rangeLimit]=\"control.rangeLimit!\"\r\n [enableTimeZoneConverter]=\"enableTimeZoneConverterForDateTimePeriodParameters\" [disabled]=\"!!control.disabled!\"\r\n [popupAlign]=\"control.popupAlign!\"></core-date-picker>\r\n }\r\n\r\n @case ('DROPDOWN') {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown [(ngModel)]=\"control.ngModel\" [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\" [paramMode]=\"true\"\r\n [options$]=\"control.dropdownOptions$!\"></core-dropdown>\r\n }\r\n }\r\n\r\n @case ('CHECKLIST') {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [(ngModel)]=\"control.ngModel\" [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\" [paramMode]=\"true\"\r\n [options$]=\"control.checklistOptions$!\"></core-checklist>\r\n }\r\n }\r\n\r\n @case ('ORG_PARAM_DROPDOWN') {\r\n <core-org-param-dropdown [accessorMode]=\"control.accessorMode!\" [(ngModel)]=\"control.ngModel\"\r\n [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\"></core-org-param-dropdown>\r\n }\r\n\r\n @case ('MONTHSELECTOR') {\r\n <core-month-selector [(ngModel)]=\"control.ngModel\" [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\" [align]=\"'left'\"></core-month-selector>\r\n }\r\n\r\n @case ('YEARSELECTOR') {\r\n <core-year-selector [(ngModel)]=\"control.ngModel\" [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\" [align]=\"'left'\"></core-year-selector>\r\n }\r\n\r\n @case ('REPORT_FORMAT') {\r\n <core-file-format-picker [(ngModel)]=\"control.ngModel\" [disabled]=\"!!control.disabled!\"\r\n (ngModelChange)=\"control.ngModelChange(control.name, $event)\"></core-file-format-picker>\r\n }\r\n\r\n }\r\n\r\n</div>", styles: [".core-param-control-container{padding-left:0;font-size:13px}.core-param-control-container label{color:#848484}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }, { kind: "component", type: CoreOrgParamComponent, selector: "core-org-param", inputs: ["accessorMode"] }, { kind: "component", type: CoreOrgParamDropdownComponent, selector: "core-org-param-dropdown", inputs: ["accessorMode", "dropdownHeight"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "component", type: CoreYearSelectorComponent, selector: "core-year-selector", inputs: ["align"], outputs: ["onYearClick"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick", "selfEnrichmentApiDriven", "selfEnrichmentApi", "selfEnrichmentHttpVerb", "selfEnrichmentHttpPayload", "selfEnrichmentShownFrom"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreFileFormatPickerComponent, selector: "core-file-format-picker" }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign", "placeholder"], outputs: ["onLeftFocus"] }] }); }
|
|
31890
32224
|
}
|
|
31891
32225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreParamControlComponent, decorators: [{
|
|
31892
32226
|
type: Component,
|
|
@@ -32355,7 +32689,7 @@ class AtShiftPatternApplyComponent {
|
|
|
32355
32689
|
this.subscriptions.map(x => x?.unsubscribe());
|
|
32356
32690
|
}
|
|
32357
32691
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AtShiftPatternApplyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32358
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: AtShiftPatternApplyComponent, isStandalone: true, selector: "core-at-shift-pattern-apply", viewQueries: [{ propertyName: "dropzone", first: true, predicate: ["dropzone"], descendants: true }, { propertyName: "dropzoneInsider", first: true, predicate: ["dropzoneInsider"], descendants: true }], ngImport: i0, template: "<div class=\"core-at-shift-pattern-apply-container\">\r\n <core-page-header [title]=\"'UI_COMPONENT_TITLE_AT_SHIFT_PATTERN_APPLY'\"\r\n (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header>\r\n <div class=\"patterns_condition-n-preview\">\r\n <div class=\"collection-wrapper\">\r\n <core-at-pattern-collection [relativeMode]=\"true\"\r\n [height]=\"patternCollectionHeight\"></core-at-pattern-collection>\r\n </div>\r\n @if (!applyToConcreateEmployees) {\r\n <div class=\"orgtree-wrapper\">\r\n <core-org-tree [(ngModel)]=\"orgIds\"></core-org-tree>\r\n </div>\r\n }\r\n <div class=\"condition-n-preview fs13\" [class.more-space]=\"!!applyToConcreateEmployees\">\r\n\r\n <div class=\"condition\">\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w200 mr15\">\r\n <label>K\u1EF3 c\u00F4ng</label>\r\n <div class=\"form-group vertical\">\r\n <core-month-selector [(ngModel)]=\"currentMonth\"\r\n (ngModelChange)=\"onCurrentMonthChange($event)\"></core-month-selector>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"startDate\" [rangeLimit]=\"dateRangeLimit\"\r\n (ngModelChange)=\"onStartDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"endDate\" [rangeLimit]=\"dateRangeLimit\"\r\n (ngModelChange)=\"onEndDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n @if (!applyToConcreateEmployees) {\r\n <div class=\"param-wrapper w250 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label>\u0110\u1ED1i t\u01B0\u1EE3ng nh\u00E2n vi\u00EAn</label>\r\n <core-checklist [paramMode]=\"true\" [(ngModel)]=\"empObjectIds\"\r\n [options$]=\"empObjOptions$\"></core-checklist>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"d-block pd3\">\r\n <core-checkbox [text]=\"applyToConcreateEmployeesLabel\" [(ngModel)]=\"applyToConcreateEmployees\"></core-checkbox>\r\n </div>\r\n @if (applyToConcreateEmployees) {\r\n <div class=\"d-block mb15 pd3\">\r\n <div class=\"param-wrapper mr15\">\r\n <div class=\"form-group vertical\">\r\n <core-param-control [control]=\"employeeIdsControl\" />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y l\u1EC5'\" [(ngModel)]=\"ignoreHolidays\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w200 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y m\u1EABu tr\u1ED1ng'\"\r\n [(ngModel)]=\"ignoreEmptyCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'Ghi \u0111\u00E8 c\u00E1c ca ch\u1EC9nh tay'\"\r\n [(ngModel)]=\"overrideDaysContainingManuallyEditedCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"preview\">\r\n\r\n <div #dropzone id=\"dropzone\" [class.ready]=\"dropzoneReady\" [ngStyle]=\"{\r\n height: dropzoneHeight + 'px',\r\n padding: '15px',\r\n }\">\r\n\r\n @if ((shiftPatternDndService.draggingData$ | async) === '') {\r\n <div #dropzoneInsider>\r\n\r\n @if (!previewData || !previewData.length) {\r\n <div [ngStyle]=\"{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '100%',\r\n height: dropzoneHeight + 'px'\r\n }\">\r\n <h2 style=\"color: white;\">\r\n @if (lang === 'vi') {\r\n K\u00E9o th\u1EA3 m\u1EABu x\u1EBFp ca v\u00E0o \u0111\u00E2y...\r\n } @else {\r\n Drag and drop a pattern here...\r\n }\r\n \r\n </h2>\r\n </div>\r\n } @else {\r\n <div class=\"container mt60\">\r\n \r\n <div class=\"row gx-5 gy-5\">\r\n \r\n @for (dailyItem of previewData; track dailyItem.workingday) {\r\n \r\n <div [class]=\"colMdClass\">\r\n \r\n <div class=\"daily-item\">\r\n <div class=\"daily-item-header\" [class.saturday]=\"!!dailyItem?.isSaturday\"\r\n [class.sunday]=\"!!dailyItem?.isSunday\">\r\n <div class=\"workingday-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-calendar\"></i><span>{{ dailyItem.workingday |\r\n tableCell : 'DATE_LOCALIZED' : lang }}</span>\r\n </div>\r\n @if (!!dailyItem.holidayName) {\r\n <div class=\"holidayName-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-gift\"></i><span>{{ dailyItem.holidayName }}</span>\r\n </div>\r\n }\r\n </div>\r\n \r\n <core-shift-cell [ngModel]=\"dailyItem.shifts\"\r\n [$readOnly]=\"true\"></core-shift-cell>\r\n \r\n </div>\r\n </div>\r\n }\r\n \r\n </div>\r\n \r\n </div>\r\n }\r\n \r\n </div>\r\n \r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n @if (showStartOffset && !!activeAtShiftPattern && !!scopeStartDate && !!scopeEndDate) {\r\n <core-start-offset [pattern]=\"activeAtShiftPattern\" [scopeStartDate]=\"scopeStartDate\"\r\n [scopeEndDate]=\"scopeEndDate\" (onClose)=\"onCloseOffset($event)\"></core-start-offset>\r\n }\r\n\r\n @if (longApiRunning) {\r\n <core-api-progress (onClose)=\"onProgressWindowClose($event)\"></core-api-progress>\r\n }\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".core-at-shift-pattern-apply-container .patterns_condition-n-preview{position:relative;vertical-align:top}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .collection-wrapper{display:block;position:absolute;left:0;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .orgtree-wrapper{display:block;position:absolute;left:240px;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{display:block;padding-left:555px;transition:padding-left .3s ease}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview.more-space{padding-left:240px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone{display:block;position:relative;width:100%;height:300px;overflow-y:auto}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item{background-color:#fff;margin:15px;width:258px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header{font-size:13px;padding:15px 15px 0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header i{margin-right:8px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.saturday{color:#07b7ee}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.sunday{color:#ef2b58}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone.ready{background-color:#d3d3d3}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{margin-left:15px}.core-at-shift-pattern-apply-container .w175{width:160px}.core-at-shift-pattern-apply-container .w180{width:180px}.core-at-shift-pattern-apply-container .w200{width:200px}.core-at-shift-pattern-apply-container .mt60{margin-top:60px}.core-at-shift-pattern-apply-container .fs13{font-size:13px}.core-at-shift-pattern-apply-container .param-wrapper label{color:#848484}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { 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: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup", "htmlTooltipRef"], outputs: ["buttonClick"] }, { kind: "component", type: CoreAtPatternCollectionComponent, selector: "core-at-pattern-collection", inputs: ["height", "relativeMode"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: StartOffsetComponent, selector: "core-start-offset", inputs: ["pattern", "scopeStartDate", "scopeEndDate"], outputs: ["onClose"] }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreApiProgressComponent, selector: "core-api-progress", outputs: ["onClose"] }, { kind: "component", type: CoreParamControlComponent, selector: "core-param-control", inputs: ["control", "enableTimeZoneConverterForDateTimePeriodParameters"] }] }); }
|
|
32692
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: AtShiftPatternApplyComponent, isStandalone: true, selector: "core-at-shift-pattern-apply", viewQueries: [{ propertyName: "dropzone", first: true, predicate: ["dropzone"], descendants: true }, { propertyName: "dropzoneInsider", first: true, predicate: ["dropzoneInsider"], descendants: true }], ngImport: i0, template: "<div class=\"core-at-shift-pattern-apply-container\">\r\n <core-page-header [title]=\"'UI_COMPONENT_TITLE_AT_SHIFT_PATTERN_APPLY'\"\r\n (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header>\r\n <div class=\"patterns_condition-n-preview\">\r\n <div class=\"collection-wrapper\">\r\n <core-at-pattern-collection [relativeMode]=\"true\"\r\n [height]=\"patternCollectionHeight\"></core-at-pattern-collection>\r\n </div>\r\n @if (!applyToConcreateEmployees) {\r\n <div class=\"orgtree-wrapper\">\r\n <core-org-tree [(ngModel)]=\"orgIds\"></core-org-tree>\r\n </div>\r\n }\r\n <div class=\"condition-n-preview fs13\" [class.more-space]=\"!!applyToConcreateEmployees\">\r\n\r\n <div class=\"condition\">\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w200 mr15\">\r\n <label>K\u1EF3 c\u00F4ng</label>\r\n <div class=\"form-group vertical\">\r\n <core-month-selector [(ngModel)]=\"currentMonth\"\r\n (ngModelChange)=\"onCurrentMonthChange($event)\"></core-month-selector>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"startDate\" [rangeLimit]=\"dateRangeLimit\"\r\n (ngModelChange)=\"onStartDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"endDate\" [rangeLimit]=\"dateRangeLimit\"\r\n (ngModelChange)=\"onEndDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n @if (!applyToConcreateEmployees) {\r\n <div class=\"param-wrapper w250 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label>\u0110\u1ED1i t\u01B0\u1EE3ng nh\u00E2n vi\u00EAn</label>\r\n <core-checklist [paramMode]=\"true\" [(ngModel)]=\"empObjectIds\"\r\n [options$]=\"empObjOptions$\"></core-checklist>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"d-block pd3\">\r\n <core-checkbox [text]=\"applyToConcreateEmployeesLabel\" [(ngModel)]=\"applyToConcreateEmployees\"></core-checkbox>\r\n </div>\r\n @if (applyToConcreateEmployees) {\r\n <div class=\"d-block mb15 pd3\">\r\n <div class=\"param-wrapper mr15\">\r\n <div class=\"form-group vertical\">\r\n <core-param-control [control]=\"employeeIdsControl\" />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y l\u1EC5'\" [(ngModel)]=\"ignoreHolidays\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w200 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y m\u1EABu tr\u1ED1ng'\"\r\n [(ngModel)]=\"ignoreEmptyCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'Ghi \u0111\u00E8 c\u00E1c ca ch\u1EC9nh tay'\"\r\n [(ngModel)]=\"overrideDaysContainingManuallyEditedCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"preview\">\r\n\r\n <div #dropzone id=\"dropzone\" [class.ready]=\"dropzoneReady\" [ngStyle]=\"{\r\n height: dropzoneHeight + 'px',\r\n padding: '15px',\r\n }\">\r\n\r\n @if ((shiftPatternDndService.draggingData$ | async) === '') {\r\n <div #dropzoneInsider>\r\n\r\n @if (!previewData || !previewData.length) {\r\n <div [ngStyle]=\"{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '100%',\r\n height: dropzoneHeight + 'px'\r\n }\">\r\n <h2 style=\"color: white;\">\r\n @if (lang === 'vi') {\r\n K\u00E9o th\u1EA3 m\u1EABu x\u1EBFp ca v\u00E0o \u0111\u00E2y...\r\n } @else {\r\n Drag and drop a pattern here...\r\n }\r\n \r\n </h2>\r\n </div>\r\n } @else {\r\n <div class=\"container mt60\">\r\n \r\n <div class=\"row gx-5 gy-5\">\r\n \r\n @for (dailyItem of previewData; track dailyItem.workingday) {\r\n \r\n <div [class]=\"colMdClass\">\r\n \r\n <div class=\"daily-item\">\r\n <div class=\"daily-item-header\" [class.saturday]=\"!!dailyItem?.isSaturday\"\r\n [class.sunday]=\"!!dailyItem?.isSunday\">\r\n <div class=\"workingday-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-calendar\"></i><span>{{ dailyItem.workingday |\r\n tableCell : 'DATE_LOCALIZED' : lang }}</span>\r\n </div>\r\n @if (!!dailyItem.holidayName) {\r\n <div class=\"holidayName-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-gift\"></i><span>{{ dailyItem.holidayName }}</span>\r\n </div>\r\n }\r\n </div>\r\n \r\n <core-shift-cell [ngModel]=\"dailyItem.shifts\"\r\n [$readOnly]=\"true\"></core-shift-cell>\r\n \r\n </div>\r\n </div>\r\n }\r\n \r\n </div>\r\n \r\n </div>\r\n }\r\n \r\n </div>\r\n \r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n @if (showStartOffset && !!activeAtShiftPattern && !!scopeStartDate && !!scopeEndDate) {\r\n <core-start-offset [pattern]=\"activeAtShiftPattern\" [scopeStartDate]=\"scopeStartDate\"\r\n [scopeEndDate]=\"scopeEndDate\" (onClose)=\"onCloseOffset($event)\"></core-start-offset>\r\n }\r\n\r\n @if (longApiRunning) {\r\n <core-api-progress (onClose)=\"onProgressWindowClose($event)\"></core-api-progress>\r\n }\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".core-at-shift-pattern-apply-container .patterns_condition-n-preview{position:relative;vertical-align:top}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .collection-wrapper{display:block;position:absolute;left:0;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .orgtree-wrapper{display:block;position:absolute;left:240px;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{display:block;padding-left:555px;transition:padding-left .3s ease}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview.more-space{padding-left:240px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone{display:block;position:relative;width:100%;height:300px;overflow-y:auto}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item{background-color:#fff;margin:15px;width:258px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header{font-size:13px;padding:15px 15px 0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header i{margin-right:8px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.saturday{color:#07b7ee}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.sunday{color:#ef2b58}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone.ready{background-color:#d3d3d3}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{margin-left:15px}.core-at-shift-pattern-apply-container .w175{width:160px}.core-at-shift-pattern-apply-container .w180{width:180px}.core-at-shift-pattern-apply-container .w200{width:200px}.core-at-shift-pattern-apply-container .mt60{margin-top:60px}.core-at-shift-pattern-apply-container .fs13{font-size:13px}.core-at-shift-pattern-apply-container .param-wrapper label{color:#848484}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }, { kind: "ngmodule", type: FormsModule }, { 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: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup", "htmlTooltipRef"], outputs: ["buttonClick"] }, { kind: "component", type: CoreAtPatternCollectionComponent, selector: "core-at-pattern-collection", inputs: ["height", "relativeMode"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: StartOffsetComponent, selector: "core-start-offset", inputs: ["pattern", "scopeStartDate", "scopeEndDate"], outputs: ["onClose"] }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreApiProgressComponent, selector: "core-api-progress", outputs: ["onClose"] }, { kind: "component", type: CoreParamControlComponent, selector: "core-param-control", inputs: ["control", "enableTimeZoneConverterForDateTimePeriodParameters"] }] }); }
|
|
32359
32693
|
}
|
|
32360
32694
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AtShiftPatternApplyComponent, decorators: [{
|
|
32361
32695
|
type: Component,
|
|
@@ -34026,7 +34360,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
34026
34360
|
const hrmSchemaRoutes = [
|
|
34027
34361
|
{
|
|
34028
34362
|
path: '',
|
|
34029
|
-
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-
|
|
34363
|
+
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-Dtuq7gL3.mjs').then(m => m.HrmSchemaComponent)
|
|
34030
34364
|
}
|
|
34031
34365
|
];
|
|
34032
34366
|
|
|
@@ -36199,7 +36533,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
36199
36533
|
const simpleChatRoutes = [
|
|
36200
36534
|
{
|
|
36201
36535
|
path: '',
|
|
36202
|
-
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-
|
|
36536
|
+
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-a2oeJnvW.mjs').then(m => m.SimpleChatComponent)
|
|
36203
36537
|
}
|
|
36204
36538
|
];
|
|
36205
36539
|
|
|
@@ -36865,7 +37199,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
36865
37199
|
const coreSysActionRoutes = [
|
|
36866
37200
|
{
|
|
36867
37201
|
path: "",
|
|
36868
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-sys-action.component-
|
|
37202
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-sys-action.component-nV8vRPuH.mjs').then(m => m.CoreSysActionComponent),
|
|
36869
37203
|
children: [
|
|
36870
37204
|
{
|
|
36871
37205
|
path: ":id",
|
|
@@ -38258,11 +38592,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
38258
38592
|
const sysSmtpClientRoutes = [
|
|
38259
38593
|
{
|
|
38260
38594
|
path: '',
|
|
38261
|
-
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client.component-
|
|
38595
|
+
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client.component-BnGhC9BX.mjs').then(m => m.SysSmtpClientComponent),
|
|
38262
38596
|
children: [
|
|
38263
38597
|
{
|
|
38264
38598
|
path: ':id',
|
|
38265
|
-
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client-edit.component-
|
|
38599
|
+
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client-edit.component-BKmXj13P.mjs').then(m => m.SysSmtpClientEditComponent),
|
|
38266
38600
|
outlet: 'corePageListAux'
|
|
38267
38601
|
}
|
|
38268
38602
|
]
|
|
@@ -39448,11 +39782,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
39448
39782
|
const coreDocGenRoutes = [
|
|
39449
39783
|
{
|
|
39450
39784
|
path: 'template-list',
|
|
39451
|
-
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-
|
|
39785
|
+
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-DHUmOX9J.mjs').then(m => m.TemplateListComponent),
|
|
39452
39786
|
},
|
|
39453
39787
|
{
|
|
39454
39788
|
path: ":id",
|
|
39455
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-
|
|
39789
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-BfEwWuRe.mjs').then(m => m.CoreTemplateEditorComponent),
|
|
39456
39790
|
canDeactivate: [CanDeactivateGuard]
|
|
39457
39791
|
},
|
|
39458
39792
|
{
|
|
@@ -39481,7 +39815,7 @@ const coreFormDesignRoutes = [
|
|
|
39481
39815
|
},
|
|
39482
39816
|
{
|
|
39483
39817
|
path: ':id',
|
|
39484
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-
|
|
39818
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-B6FlKxx3.mjs').then(m => m.CoreFormDesignComponent)
|
|
39485
39819
|
}
|
|
39486
39820
|
];
|
|
39487
39821
|
|
|
@@ -40392,7 +40726,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
40392
40726
|
const coreNavigationTrackerRoutes = [
|
|
40393
40727
|
{
|
|
40394
40728
|
path: '',
|
|
40395
|
-
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-
|
|
40729
|
+
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-B-OcW4bn.mjs').then(m => m.TrackerStudioComponent)
|
|
40396
40730
|
}
|
|
40397
40731
|
];
|
|
40398
40732
|
|
|
@@ -43495,33 +43829,33 @@ const coreWorkflowRoutes = [
|
|
|
43495
43829
|
{
|
|
43496
43830
|
path: 'form-assign/:id',
|
|
43497
43831
|
outlet: "formAssignAux",
|
|
43498
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-
|
|
43832
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-BGRSrIy9.mjs').then(m => m.WfFormAssignComponent),
|
|
43499
43833
|
canDeactivate: [CanDeactivateGuard]
|
|
43500
43834
|
}
|
|
43501
43835
|
]
|
|
43502
43836
|
},
|
|
43503
43837
|
{
|
|
43504
43838
|
path: 'global-config',
|
|
43505
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-
|
|
43839
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-BJ8BRR0f.mjs').then(m => m.WfGlobalConfigComponent)
|
|
43506
43840
|
},
|
|
43507
43841
|
{
|
|
43508
43842
|
path: 'db-settings',
|
|
43509
|
-
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-
|
|
43843
|
+
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-DH4Fq2Yv.mjs').then(m => m.DbSettingsComponent)
|
|
43510
43844
|
},
|
|
43511
43845
|
{
|
|
43512
43846
|
path: 'workflow-consume',
|
|
43513
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-
|
|
43847
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-IzPHcKl5.mjs').then(m => m.CoreWorkflowConsumeComponent),
|
|
43514
43848
|
children: [
|
|
43515
43849
|
{
|
|
43516
43850
|
path: ':id',
|
|
43517
43851
|
outlet: "workflowConsume",
|
|
43518
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
43852
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-3aIY5wK4.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
43519
43853
|
}
|
|
43520
43854
|
]
|
|
43521
43855
|
},
|
|
43522
43856
|
{
|
|
43523
43857
|
path: 'workflow-consume/:id',
|
|
43524
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
43858
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-3aIY5wK4.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
43525
43859
|
},
|
|
43526
43860
|
{
|
|
43527
43861
|
path: 'workflow-group-edit/:id',
|
|
@@ -43531,21 +43865,21 @@ const coreWorkflowRoutes = [
|
|
|
43531
43865
|
},
|
|
43532
43866
|
{
|
|
43533
43867
|
path: 'design/:id',
|
|
43534
|
-
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-
|
|
43868
|
+
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-DXjUCfDr.mjs').then(m => m.wfDesignWrapperRoutes),
|
|
43535
43869
|
},
|
|
43536
43870
|
]
|
|
43537
43871
|
},
|
|
43538
43872
|
{
|
|
43539
43873
|
path: 'react/:id',
|
|
43540
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-
|
|
43874
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-DHplywAb.mjs').then(m => m.WfInstanceStepReactComponent)
|
|
43541
43875
|
},
|
|
43542
43876
|
{
|
|
43543
43877
|
path: 'status/:id',
|
|
43544
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-
|
|
43878
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-CzGlTh39.mjs').then(m => m.WfInstanceStatusComponent)
|
|
43545
43879
|
},
|
|
43546
43880
|
{
|
|
43547
43881
|
path: 'lab',
|
|
43548
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-lab.component-
|
|
43882
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-lab.component-CH3mUOGG.mjs').then(m => m.WfLabComponent)
|
|
43549
43883
|
}
|
|
43550
43884
|
];
|
|
43551
43885
|
|
|
@@ -46154,4 +46488,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
46154
46488
|
*/
|
|
46155
46489
|
|
|
46156
46490
|
export { READONLY_WORKFLOW_FIELDS as $, AppService as A, BaseComponent as B, ChatService as C, DragReorderDirective as D, EnumFormBaseContolType as E, FullscreenModalLoaderComponent as F, DomService as G, HtmlTooltipDirective as H, ImageErrorResolverDirective as I, EnumActorSourceType as J, CoreParamControlComponent as K, CoreRadioGroupComponent as L, MultiLanguageService as M, GptService as N, CoreRuleTreeService as O, CoreRuleTreeComponent as P, CoreStickerCollectionComponent as Q, ApplicationHelpService as R, StringHtmlPipe as S, TooltipDirective as T, HotKeysDirective as U, CoreDatetimeService as V, EnumCorePageEditMode as W, CoreFormComponent as X, NavigatorService as Y, JsonService as Z, EnumCoreButtonVNSCode as _, AppConfigService as a, CheckForUpdateService as a$, noneAutoClosedAlertOptions as a0, CoreButtonGroupVnsComponent as a1, CoreDropdownComponent as a2, EnumFilterOperator as a3, CoreDomDecisionEditorComponent as a4, CoreControlNoFormArrayComponent as a5, EnumFormDesignMode as a6, CoreControlComponent as a7, JsonSafePipe as a8, CoreChecklistComponent as a9, EnumDragType as aA, EnumErrorType as aB, EnumIconClass as aC, EnumProfileInfoSector as aD, EnumSignalRType as aE, EnumSortDirection as aF, EnumStyleButtonClass as aG, CanActivateFunctionUrlMapperGuard as aH, InitializationCanActivateFn as aI, InitializationCanMatchFn as aJ, httpInterceptorProviders as aK, InterceptorSkipHeader as aL, appTypeInterceptor as aM, baseUrlInterceptor as aN, authInterceptor as aO, graphInterceptor as aP, tokenInterceptor as aQ, responseInterceptor as aR, timeZoneInterceptor as aS, cachingInterceptor as aT, langInterceptor as aU, OnlineUsersComponent as aV, ActionService as aW, AppInitializationService as aX, AuthService as aY, CacheService as aZ, EnumSwUpdateVersionUpdatesEventType as a_, CoreFormControlSeekerComponent as aa, CoreAttachmentComponent as ab, CoreDatePickerComponent as ac, CoreMonthSelectorComponent as ad, CoreCurrencyInputComponent as ae, EnumImageResolverType as af, NormalizeHumanNamePipe as ag, CoreIosSwitcherComponent as ah, SunnyRotatingComponent as ai, MapAppdemoToServerPipePipe as aj, MapAttachmentToServerPipe as ak, MapNewsfeedMediaToServerPipe as al, UploadedFilenameCutoffPipe as am, DialogStateComponent as an, FooterComponent as ao, RightchatComponent as ap, WaittingScreenComponent as aq, longAlertOptions as ar, attachmentOptions as as, CORE_VNS_BUTTONS as at, defaultPaging as au, DESKTOP_SCREEN_HEDER_HEIGHT as av, MOBILE_SCREEN_HEDER_HEIGHT as aw, themeBlue as ax, DATE_VALUE_ACCESSOR as ay, DateValueAccessor as az, AlertService as b, InMemoryComponent as b$, EnumDeviceType as b0, EnumBrowserType as b1, EnumOsType as b2, ClientService as b3, CommonHttpRequestService as b4, TLA_CONFIG as b5, ConfigService as b6, CoreLocalStorageService as b7, CoreTableService as b8, DndService as b9, EnumSsrsExpressExportFormat as bA, SsrsExpressService as bB, StatisticService as bC, StatisticAuthService as bD, SysMenuService as bE, TimeSheetService as bF, TopicPermissionService as bG, TopicTreeService as bH, UploadedFileService as bI, UrlService as bJ, UserActivityService as bK, EvaluateDialogService as bL, EnumWorkScheduleViewMode as bM, WorkShiftDndService as bN, AtShiftPatternComponent as bO, AtShiftPatternApplyComponent as bP, AtShiftPatternEditComponent as bQ, AtWorksignComponent as bR, AtWorksignService as bS, FunctionComponent as bT, IndividualScheduleApplyComponent as bU, FunctionEditComponent as bV, FunctionIgnoreComponent as bW, FunctionIgnoreEditComponent as bX, GroupFunctionComponent as bY, GroupFunctionEditComponent as bZ, hrmSchemaRoutes as b_, DocxMergeService as ba, FilterKitService as bb, GrpcService as bc, HeaderService as bd, HistoryService as be, HttpErrorHandler as bf, HubConnectionService as bg, IpServiceService as bh, LayoutService as bi, LiquidJsService as bj, MapService as bk, MenuService as bl, MessageService as bm, ModalService as bn, OrganizationService as bo, PkceService as bp, PositionTransferService as bq, EnumNotificationDir as br, NotificationActionType as bs, PushNotificationService as bt, RandomAvatarService as bu, RequestCache as bv, RequestCacheWithMap as bw, ResponseService as bx, RoutingService as by, EnumSsrsExpressFileExtension as bz, CoreTerminalSpinnerComponent as c, CoreTableComponent as c$, LanguageComponent as c0, LanguageEditComponent as c1, MenuComponent as c2, MenuEditComponent as c3, MutationLogComponent as c4, MutationViewComponent as c5, PaSalaryPolicyComponent as c6, PaSalaryPolicyEditComponent as c7, PortalRouteComponent as c8, ScheduleOverviewComponent as c9, ButtonGroupModule as cA, ButtonGroupService as cB, ButtonGroupComponent as cC, EnumButtonCaptionCode as cD, CoreButtonComponent as cE, CoreAccordionComponent as cF, CoreAccordionService as cG, CoreActiveUserCountComponent as cH, NewlyCreatedTokenService as cI, CoreApiProgressComponent as cJ, CoreButtonGroupComponent as cK, EnumCoreButtonCode as cL, ActionSvgEditComponent as cM, CoreButtonGroupService as cN, CoreButtonVnsComponent as cO, CoreCommonParamKitComponent as cP, CoreCompareDbPipelineComponent as cQ, CoreCompositionState as cR, CoreCompositionService as cS, CoreCompositionComponent as cT, CoreConfirmDialogComponent as cU, ConfirmDialogStateComponent as cV, CoreLazyMountComponent as cW, CoreRootMenuItemPickerComponent as cX, CoreRootMenuItemPickerService as cY, ECoreTableToolCode as cZ, ECoreTableToolClass as c_, simpleChatRoutes as ca, PortalRouteEditComponent as cb, SysOtherListComponent as cc, SysOtherListEditComponent as cd, SysOtherListTypeComponent as ce, SysOtherListTypeEditComponent as cf, coreSysActionRoutes as cg, SysActionComponent as ch, SysActionEditComponent as ci, SysFunctionActionComponent as cj, SysFunctionActionEditComponent as ck, SysFunctionActionMapperComponent as cl, SysFunctionUrlMapperComponent as cm, FunctionEditService as cn, SysModuleComponent as co, SysModuleEditComponent as cp, SysRouteAccessComponent as cq, sysSmtpClientRoutes as cr, liner_to_nested_array_script as cs, blob_to_base64_script as ct, AlertComponent as cu, EnumAlertType as cv, IAlertOptions as cw, AnimatedTextService as cx, AnimatedTextComponent as cy, BaseDropdownComponent as cz, CorePageHeaderComponent as d, CorePageListContentComponent as d$, CoreContractSeekerComponent as d0, CoreControlNoGridBufferComponent as d1, CoreControlNoSeekerComponent as d2, coreDocGenRoutes as d3, CoreDocgenToolbarComponent as d4, CoreEmployeeScheduleComponent as d5, CoreEmployeeSeekerComponent as d6, EnumCoreFileUploaderType as d7, CoreFileUploaderComponent as d8, CoreFilterHubComponent as d9, CoreListLazyComponent as dA, CoreLoadingSurfaceComponent as dB, CoreMccComponent as dC, CoreMonthPickerComponent as dD, CoreNavigationTrackerComponent as dE, coreNavigationTrackerRoutes as dF, CoreOauthCallbackComponent as dG, CoreOauthCallbackOffice365Component as dH, EnumCoreOrgTreeaAccessorMode as dI, EnumCoreOrgTreeaSearchMode as dJ, CoreOrgTreeComponent as dK, CoreOrgTreeState as dL, CoreOrgTreeService as dM, CoreOrgUnitSeekerComponent as dN, CoreOrgchartflexComponent as dO, CARD_COLORS as dP, CoreOrgchartflexWrapperComponent as dQ, coreOrgchartflexRoutes as dR, CoreOrgParamComponent as dS, EnumCorePageEditBootstrapClass as dT, EnumCorePageEditFieldType as dU, CorePageEditService as dV, CorePageEditLiteComponent as dW, CorePageEditTabComponent as dX, EnumExType as dY, CorePageListService as dZ, CorePageListState as d_, CoreFilterHubService as da, ControlBase as db, Textbox as dc, CoreControlService as dd, CustomValidators as de, URL_PATTERN as df, coreFormDesignRoutes as dg, CoreFormTabComponent as dh, CoreFormLiteComponent as di, CoreFormControlBaseComponent as dj, EnumCoreSeekerColumnJob as dk, EnumCoreSeekerColumnStaffProfile as dl, EnumCoreSeekerColumnContract as dm, EnumCoreSeekerColumnWorking as dn, EnumCoreSeekerColumnWage as dp, EnumCoreSeekerColumnPosition as dq, EnumCoreSeekerColumnPositionConcurrent as dr, EnumCoreSeekerColumnAutoForm as ds, SeekerService as dt, CoreGridBufferComponent as du, CoreHeaderParamsComponent as dv, CoreHelperComponent as dw, CoreLineComponent as dx, CoreLiquidWysiwygComponent as dy, CoreListComponent as dz, TranslatePipe as e, PageTitleComponent as e$, EnumCoreViewItemType as e0, CorePageViewComponent as e1, CorePaginationComponent as e2, CorePaginationFullComponent as e3, CorePaginationFullService as e4, CoreFileFormatPickerComponent as e5, CorePermissionService as e6, EnumPermissionObjectType as e7, CorePermissionComponent as e8, CorePermissionActionsComponent as e9, EnumCoreTreeGridEditMode as eA, CoreTreeGridComponent as eB, CoreTreeReferenceComponent as eC, CoreWageSeekerComponent as eD, CoreWorkingSeekerComponent as eE, coreWorkflowRoutes as eF, CoreWorkflowBuilderComponent as eG, CoreWorkflowGroupEditComponent as eH, CoreYearPickerComponent as eI, CoreYearSelectorComponent as eJ, EnumCoreD3ScaleType as eK, CoreD3Service as eL, CorePieComponent as eM, CoreScatterPlotComponent as eN, EnumHrComparisonCode as eO, EnumICoreStatisticWidgetDataType as eP, CoreStatisticWidgetComponent as eQ, DecisionComponent as eR, EvaluateDialogComponent as eS, HuconcurrentlyComponent as eT, JobComponent as eU, LanguageChangerComponent as eV, DEFAULT_SVG as eW, ItemComponent as eX, NavigatorComponent as eY, OtpInputComponent as eZ, OtpInputService as e_, CorePositionConcurrentSeekerComponent as ea, CorePositionSeekerComponent as eb, CoreQrcodeComponent as ec, EnumOparator as ed, CoreQueryBuilderComponent as ee, CoreReducerIconComponent as ef, CoreRotatingTextComponent as eg, CoreRouteAccumulatorComponent as eh, CoreRoutingHistoryComponent as ei, CoreSalaryPolicyPickerComponent as ej, CoreScrollComponent as ek, CoreScrollLazyComponent as el, CoreSeenByComponent as em, CoreShiftCardComponent as en, CoreShiftCellComponent as eo, CoreShiftCollectionComponent as ep, CoreShiftStickerComponent as eq, STICKER_COLOR_SCHEMA as er, CoreSubFormGroupComponent as es, CoreTabListComponent as et, CoreTagsComponent as eu, CoreTopicPickerComponent as ev, EnumCoreArticleCategoryTreeaAccessorMode as ew, CoreTopicTreeComponent as ex, CoreTimezoneComponent as ey, CoreTreeComponent as ez, CorePageListComponent as f, PaginationComponent as f0, FilterPipe as f1, normalizeHumanName as f2, PositionComponent as f3, PositionEditService as f4, FileService as f5, LongTaskService as f6, EnumRecursiveFields as f7, RecursiveService as f8, StringService as f9, UnicodeService as fa, StaffProfileComponent as fb, ThreedotsComponent as fc, TooltipComponent as fd, UserActivityComponent as fe, WageComponent as ff, tooltip_directive as fg, coreStickerCollection_component as fh, dragReorder_directive as fi, CoreStatusStickerComponent as g, BaseEditComponent as h, DialogService as i, CorePageEditComponent as j, EnumCoreTablePipeType as k, CoreCheckboxComponent as l, CoreTabsComponent as m, CoreWorkflowService as n, EnumCoreFormControlSeekerSourceType as o, CoreFormService as p, DbService as q, AiHintForColumnComponent as r, CoreWorkflowListComponent as s, CanDeactivateGuard as t, MapAvatarToServerPipe as u, TableCellPipe as v, alertOptions as w, SocketService as x, CoreFormDesignService as y, EnumWorkflowStepType as z };
|
|
46157
|
-
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-
|
|
46491
|
+
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-50AdT87r.mjs.map
|