ngx-histaff-alpha 6.7.0 → 6.7.2
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-Dj2bR7iS.mjs → ngx-histaff-alpha-ai-hint-for-table.component-C6gNt7ID.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-Dj2bR7iS.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-C6gNt7ID.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-Cam7V7oB.mjs → ngx-histaff-alpha-core-form-design.component-CgJL6bNn.mjs} +24 -12
- package/fesm2022/ngx-histaff-alpha-core-form-design.component-CgJL6bNn.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-D5fT6yqc.mjs → ngx-histaff-alpha-core-sys-action.component-TvSEbkRY.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-D5fT6yqc.mjs.map → ngx-histaff-alpha-core-sys-action.component-TvSEbkRY.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-BKr8PErZ.mjs → ngx-histaff-alpha-core-template-editor.component-BO2iHdtr.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-BKr8PErZ.mjs.map → ngx-histaff-alpha-core-template-editor.component-BO2iHdtr.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-BziGvhu7.mjs → ngx-histaff-alpha-core-toast-loading.component-D6L2vvEy.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-BziGvhu7.mjs.map → ngx-histaff-alpha-core-toast-loading.component-D6L2vvEy.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-BIx0TovN.mjs → ngx-histaff-alpha-core-workflow-consume.component-B60KkHBd.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-BIx0TovN.mjs.map → ngx-histaff-alpha-core-workflow-consume.component-B60KkHBd.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-B7J6Vmhl.mjs → ngx-histaff-alpha-db-settings.component-7YXahcx6.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-B7J6Vmhl.mjs.map → ngx-histaff-alpha-db-settings.component-7YXahcx6.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-C8741lk_.mjs → ngx-histaff-alpha-design-wrapper.component-afSKU7r-.mjs} +12 -5
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-afSKU7r-.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-BPX0_yrT.mjs → ngx-histaff-alpha-design-wrapper.route-g5HQJs3l.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-BPX0_yrT.mjs.map → ngx-histaff-alpha-design-wrapper.route-g5HQJs3l.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-CErIMXQv.mjs → ngx-histaff-alpha-hrm-schema.component-DOjUVwDx.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-CErIMXQv.mjs.map → ngx-histaff-alpha-hrm-schema.component-DOjUVwDx.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-live-form.component-R3sLrUSc.mjs → ngx-histaff-alpha-live-form.component-ClikowUy.mjs} +30 -6
- package/fesm2022/ngx-histaff-alpha-live-form.component-ClikowUy.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-Dn5Nu0X2.mjs → ngx-histaff-alpha-ngx-histaff-alpha-Ch_L3NjN.mjs} +602 -175
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-Ch_L3NjN.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-C-NEp41J.mjs → ngx-histaff-alpha-simple-chat.component-CyXzjXRl.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-C-NEp41J.mjs.map → ngx-histaff-alpha-simple-chat.component-CyXzjXRl.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client-edit.component-DZ4p_Fxr.mjs → ngx-histaff-alpha-sys-smtp-client-edit.component-CPtDVzH6.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client-edit.component-DZ4p_Fxr.mjs.map → ngx-histaff-alpha-sys-smtp-client-edit.component-CPtDVzH6.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client.component-BSNdC0fI.mjs → ngx-histaff-alpha-sys-smtp-client.component-D-eR59PP.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client.component-BSNdC0fI.mjs.map → ngx-histaff-alpha-sys-smtp-client.component-D-eR59PP.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-template-list.component-B4eqR8Au.mjs → ngx-histaff-alpha-template-list.component-D3y6Ikg6.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-template-list.component-B4eqR8Au.mjs.map → ngx-histaff-alpha-template-list.component-D3y6Ikg6.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-D8f2uMmY.mjs → ngx-histaff-alpha-tracker-studio.component-B33444ca.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-D8f2uMmY.mjs.map → ngx-histaff-alpha-tracker-studio.component-B33444ca.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-E74A5t9G.mjs → ngx-histaff-alpha-wf-form-assign.component-CjUVdHfA.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-E74A5t9G.mjs.map → ngx-histaff-alpha-wf-form-assign.component-CjUVdHfA.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-BDTnGgs7.mjs → ngx-histaff-alpha-wf-global-config.component-C6E99R89.mjs} +12 -12
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-BDTnGgs7.mjs.map → ngx-histaff-alpha-wf-global-config.component-C6E99R89.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-DSz84k3j.mjs → ngx-histaff-alpha-wf-instance-status.component-inD8KWzd.mjs} +7 -6
- package/fesm2022/ngx-histaff-alpha-wf-instance-status.component-inD8KWzd.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-C2ZQHv56.mjs → ngx-histaff-alpha-wf-instance-step-react.component-BwozfTka.mjs} +25 -4
- package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-BwozfTka.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-wf-lab.component-i6ic1Lf3.mjs → ngx-histaff-alpha-wf-lab.component-Ifhq99S9.mjs} +3 -3
- package/fesm2022/ngx-histaff-alpha-wf-lab.component-Ifhq99S9.mjs.map +1 -0
- 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 +6 -1
- package/lib/app/libraries/core-dom-decision-editor/dom-decision-context.service.d.ts +9 -0
- package/lib/app/libraries/core-dom-decision-editor/dom-entity-token/dom-entity-token.component.d.ts +8 -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/entity-token.d.ts +9 -0
- package/lib/app/libraries/core-dom-decision-editor/intent-composer/intent-composer.component.d.ts +2 -1
- 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 +3 -0
- package/lib/app/libraries/core-form-design/live-form/live-form.component.d.ts +1 -0
- package/lib/app/libraries/core-workflow-builder/core-workflow.service.d.ts +1 -1
- package/lib/app/libraries/core-workflow-builder/interfaces/IWorkflowReactContext.d.ts +2 -0
- package/lib/app/libraries/core-workflow-builder/interfaces/IWorkflowStepProgressActor.d.ts +10 -1
- package/lib/app/libraries/core-workflow-builder/wf-instance-step-react/wf-instance-step-react.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-Cam7V7oB.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-C8741lk_.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-live-form.component-R3sLrUSc.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-Dn5Nu0X2.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-instance-status.component-DSz84k3j.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-C2ZQHv56.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-lab.component-i6ic1Lf3.mjs.map +0 -1
|
@@ -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 }); }
|
|
@@ -8291,7 +8313,7 @@ class CoreFormDesignService {
|
|
|
8291
8313
|
// 🧠 Runtime init
|
|
8292
8314
|
switch (control.controlType) {
|
|
8293
8315
|
case EnumFormBaseContolType.DATEPICKER:
|
|
8294
|
-
control.value = new Date();
|
|
8316
|
+
//control.value = new Date();
|
|
8295
8317
|
// control.rangeLimit = {
|
|
8296
8318
|
// minDate: new Date(1900, 1, 1),
|
|
8297
8319
|
// maxDate: new Date(9999, 12, 31)
|
|
@@ -9465,8 +9487,8 @@ class CoreWorkflowService {
|
|
|
9465
9487
|
initialSubmit(request) {
|
|
9466
9488
|
return this.appService.post('/api/WfWorkflow/InitialSubmit', request);
|
|
9467
9489
|
}
|
|
9468
|
-
react(unitedCorrelationIds, reactType, reason, updatedAttributes) {
|
|
9469
|
-
return this.appService.post('/api/WorkflowEngine/React?usehub=true', { unitedCorrelationIds, reactType, reason, updatedAttributes });
|
|
9490
|
+
react(unitedCorrelationIds, reactType, reason, updatedAttributes, delegationId) {
|
|
9491
|
+
return this.appService.post('/api/WorkflowEngine/React?usehub=true', { unitedCorrelationIds, reactType, reason, updatedAttributes, delegationId });
|
|
9470
9492
|
}
|
|
9471
9493
|
inject(unitedCorrelationIds, injectType, reason, injectorEmployeeId = undefined) {
|
|
9472
9494
|
return this.appService.post('/api/WorkflowEngine/Inject?usehub=true', { unitedCorrelationIds, injectType, reason, injectorEmployeeId });
|
|
@@ -9935,6 +9957,58 @@ class CoreDatetimeService {
|
|
|
9935
9957
|
return `${year}-${month}`;
|
|
9936
9958
|
}
|
|
9937
9959
|
}
|
|
9960
|
+
/**
|
|
9961
|
+
* Interprets a Date as a civil calendar date in a specific IANA timezone.
|
|
9962
|
+
*
|
|
9963
|
+
* Purpose:
|
|
9964
|
+
* - Given an absolute instant (JavaScript Date),
|
|
9965
|
+
* re-interpret it as a calendar date (YYYY-MM-DD)
|
|
9966
|
+
* as perceived in the provided IANA timezone.
|
|
9967
|
+
*
|
|
9968
|
+
* What this function DOES:
|
|
9969
|
+
* - Uses Intl.DateTimeFormat with `timeZone` to extract
|
|
9970
|
+
* year / month / day in the target timezone.
|
|
9971
|
+
* - Re-materializes a new Date using those calendar parts
|
|
9972
|
+
* in the browser's local runtime timezone.
|
|
9973
|
+
*
|
|
9974
|
+
* What this function DOES NOT do:
|
|
9975
|
+
* - Does NOT apply business rules (e.g. start-of-day / end-of-day).
|
|
9976
|
+
* - Does NOT modify hours, minutes, seconds explicitly.
|
|
9977
|
+
* - Does NOT depend on range semantics (start / inclusive-end).
|
|
9978
|
+
* - Does NOT mutate the input Date.
|
|
9979
|
+
*
|
|
9980
|
+
* Design notes:
|
|
9981
|
+
* - JavaScript Date always represents an absolute instant.
|
|
9982
|
+
* - "Date-only" values in business forms are civil concepts,
|
|
9983
|
+
* not instants in time.
|
|
9984
|
+
* - Timezone interpretation MUST be applied exactly once,
|
|
9985
|
+
* at form boundaries (e.g. writeValue / onChange).
|
|
9986
|
+
*
|
|
9987
|
+
* Usage constraints:
|
|
9988
|
+
* - This function is intended for form-layer normalization only.
|
|
9989
|
+
* - It MUST be optional and backward-compatible.
|
|
9990
|
+
* - Absence of timezone context MUST preserve legacy behavior.
|
|
9991
|
+
*
|
|
9992
|
+
* @param date Absolute Date (instant)
|
|
9993
|
+
* @param timezoneId IANA Time Zone ID (e.g. "Asia/Ho_Chi_Minh")
|
|
9994
|
+
* @returns Date representing the same civil day in local runtime timezone
|
|
9995
|
+
*/
|
|
9996
|
+
interpretDateInTimezone(date, timezoneId) {
|
|
9997
|
+
// Interpret date into calendar parts in the given IANA timezone
|
|
9998
|
+
const parts = new Intl.DateTimeFormat('en-CA', {
|
|
9999
|
+
timeZone: timezoneId,
|
|
10000
|
+
year: 'numeric',
|
|
10001
|
+
month: '2-digit',
|
|
10002
|
+
day: '2-digit'
|
|
10003
|
+
}).formatToParts(date);
|
|
10004
|
+
const get = (type) => Number(parts.find(p => p.type === type)?.value);
|
|
10005
|
+
const year = get('year');
|
|
10006
|
+
const month = get('month') - 1; // JS month is 0-based
|
|
10007
|
+
const day = get('day');
|
|
10008
|
+
// Re-materialize as LOCAL Date
|
|
10009
|
+
// (Browser runtime timezone applies here)
|
|
10010
|
+
return new Date(year, month, day);
|
|
10011
|
+
}
|
|
9938
10012
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDatetimeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9939
10013
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDatetimeService, providedIn: 'root' }); }
|
|
9940
10014
|
}
|
|
@@ -17337,17 +17411,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
17337
17411
|
|
|
17338
17412
|
*/
|
|
17339
17413
|
class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
17340
|
-
constructor(renderer, domService, coreDatetimeService, mls, alertService) {
|
|
17414
|
+
constructor(renderer, domService, coreDatetimeService, mls, alertService, acs) {
|
|
17341
17415
|
super();
|
|
17342
17416
|
this.renderer = renderer;
|
|
17343
17417
|
this.domService = domService;
|
|
17344
17418
|
this.coreDatetimeService = coreDatetimeService;
|
|
17345
17419
|
this.mls = mls;
|
|
17346
17420
|
this.alertService = alertService;
|
|
17421
|
+
this.acs = acs;
|
|
17347
17422
|
this.showPlaceholder = false;
|
|
17348
17423
|
this.popupWidth = 300;
|
|
17349
17424
|
this.popupXPadding = 12;
|
|
17350
17425
|
this.placeholder = '';
|
|
17426
|
+
this.$rangePoint = input(undefined);
|
|
17427
|
+
/**
|
|
17428
|
+
* Timezone context (IANA) resolved from the parent form.
|
|
17429
|
+
*
|
|
17430
|
+
* Convention:
|
|
17431
|
+
* - If a business form operates under a timezone context,
|
|
17432
|
+
* the field representing that context MUST be named `timezoneId`
|
|
17433
|
+
* and MUST contain a valid IANA Time Zone ID
|
|
17434
|
+
* (e.g. "Asia/Ho_Chi_Minh").
|
|
17435
|
+
*
|
|
17436
|
+
* Design notes:
|
|
17437
|
+
* - This value is READ-ONLY and OPTIONAL.
|
|
17438
|
+
* - It is used exclusively for time normalization at form boundaries
|
|
17439
|
+
* (writeValue / onChange).
|
|
17440
|
+
* - The absence of `timezoneId` MUST preserve legacy behavior.
|
|
17441
|
+
*
|
|
17442
|
+
* DO NOT:
|
|
17443
|
+
* - Mutate this value.
|
|
17444
|
+
* - Assume the field always exists.
|
|
17445
|
+
* - Use it to alter UI rendering logic.
|
|
17446
|
+
*/
|
|
17447
|
+
this.$timezoneId = computed(() => this.ngControl?.control?.parent?.value?.timezoneId ?? null);
|
|
17351
17448
|
this.cdr = inject(ChangeDetectorRef);
|
|
17352
17449
|
this.hasError = false;
|
|
17353
17450
|
this.subscriptions = [];
|
|
@@ -17370,26 +17467,35 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17370
17467
|
}
|
|
17371
17468
|
ngOnInit() {
|
|
17372
17469
|
super.register();
|
|
17373
|
-
this.newDate = !!this.rangeLimit ? this.rangeLimit.minDate : new Date();
|
|
17470
|
+
// this.newDate = !!this.rangeLimit ? this.rangeLimit.minDate : new Date();
|
|
17471
|
+
// this.currentMonthObject$ = new BehaviorSubject<IMonthIdentity>({
|
|
17472
|
+
// year: this.value?.getFullYear() || this.newDate.getFullYear(),
|
|
17473
|
+
// monthIndex: this.value?.getMonth() || this.newDate.getMonth()
|
|
17474
|
+
// });
|
|
17475
|
+
// UI anchor ONLY – tuyệt đối không suy đoán form value
|
|
17476
|
+
const anchor = this.rangeLimit?.minDate
|
|
17477
|
+
?? new Date(new Date().getFullYear(), new Date().getMonth(), 1);
|
|
17374
17478
|
this.currentMonthObject$ = new BehaviorSubject({
|
|
17375
|
-
year:
|
|
17376
|
-
monthIndex:
|
|
17479
|
+
year: anchor.getFullYear(),
|
|
17480
|
+
monthIndex: anchor.getMonth()
|
|
17377
17481
|
});
|
|
17378
17482
|
if (!!this.disabled)
|
|
17379
17483
|
this.readonly = true;
|
|
17380
|
-
if (!!!this.value) {
|
|
17381
|
-
|
|
17382
|
-
|
|
17383
|
-
}
|
|
17384
|
-
|
|
17385
|
-
|
|
17386
|
-
|
|
17387
|
-
|
|
17388
|
-
|
|
17389
|
-
|
|
17390
|
-
|
|
17391
|
-
|
|
17392
|
-
|
|
17484
|
+
// if (!!!this.value) {
|
|
17485
|
+
// //this.value = this.newDate;
|
|
17486
|
+
// this.lastText = ""
|
|
17487
|
+
// } else {
|
|
17488
|
+
// this.pendingYear = this.value.getFullYear();
|
|
17489
|
+
// this.pendingMonthIndex = this.value.getMonth();
|
|
17490
|
+
// this.pendingDay = this.value.getDate();
|
|
17491
|
+
// this.currentHours = this.value.getHours();
|
|
17492
|
+
// this.currentMinutes = this.value.getMinutes();
|
|
17493
|
+
// this.currentSeconds = this.value.getSeconds();
|
|
17494
|
+
// this.currentMilliseconds = this.value.getMilliseconds();
|
|
17495
|
+
// }
|
|
17496
|
+
// ❗ KHÔNG đọc this.value ở đây
|
|
17497
|
+
// writeValue sẽ chịu trách nhiệm set toàn bộ state liên quan tới value
|
|
17498
|
+
this.lastText = '';
|
|
17393
17499
|
this.subscriptions.push(this.mls.lang$.subscribe(x => this.lang = x));
|
|
17394
17500
|
/*
|
|
17395
17501
|
if (!!!this.id) {
|
|
@@ -17513,7 +17619,8 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17513
17619
|
const date = new Date(Number(digits[2]), Number(digits[1]) - 1, Number(digits[0]), hr, mn, sd, ms);
|
|
17514
17620
|
event.target.value = this.coreDatetimeService.dateToVnString(date);
|
|
17515
17621
|
this.markAsTouched();
|
|
17516
|
-
this.onChange(date);
|
|
17622
|
+
//this.onChange(date);
|
|
17623
|
+
this.onChange(this.applyRangePoint(date));
|
|
17517
17624
|
this.enrichment.register(this.form, this.fieldName, this.textValue);
|
|
17518
17625
|
}
|
|
17519
17626
|
else {
|
|
@@ -17524,30 +17631,149 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17524
17631
|
}
|
|
17525
17632
|
});
|
|
17526
17633
|
}
|
|
17634
|
+
// override writeValue(input: Date | string | null | undefined): void {
|
|
17635
|
+
// console.log("UTC input ", input);
|
|
17636
|
+
//let obj: any = new Date();
|
|
17637
|
+
// if (input === null) {
|
|
17638
|
+
// this.value = null
|
|
17639
|
+
// this.textValue = '';
|
|
17640
|
+
// this.enrichment.register(this.form, this.fieldName, "");
|
|
17641
|
+
// return;
|
|
17642
|
+
// } else if (typeof (input) === 'string') {
|
|
17643
|
+
// if (input === "") {
|
|
17644
|
+
// obj = null;
|
|
17645
|
+
// } else {
|
|
17646
|
+
// obj = new Date(new Date(input).setHours(0, 0, 0, 0));
|
|
17647
|
+
// }
|
|
17648
|
+
// } else if (input !== null && typeof (input?.getFullYear) === "function") {
|
|
17649
|
+
// obj = input
|
|
17650
|
+
// } else {
|
|
17651
|
+
// console.error("Invalid date input")
|
|
17652
|
+
// return
|
|
17653
|
+
// }
|
|
17654
|
+
// const updateProperties = (value: Date) => {
|
|
17655
|
+
// console.log("After convert to Local Date ", value);
|
|
17656
|
+
// this.value = value;
|
|
17657
|
+
// this.lastText = this.coreDatetimeService.dateToVnString(value)
|
|
17658
|
+
// this.textValue = this.coreDatetimeService.dateToVnString(value);
|
|
17659
|
+
// this.enrichment.register(this.form, this.fieldName, this.textValue);
|
|
17660
|
+
// this.currentMonthObject$.next({
|
|
17661
|
+
// year: value.getFullYear(),
|
|
17662
|
+
// monthIndex: value.getMonth()
|
|
17663
|
+
// })
|
|
17664
|
+
// this.currentHours = value.getHours();
|
|
17665
|
+
// this.currentMinutes = value.getMinutes();
|
|
17666
|
+
// this.currentSeconds = value.getSeconds();
|
|
17667
|
+
// this.currentMilliseconds = value.getMilliseconds();
|
|
17668
|
+
// this.currentMonthText = this.coreDatetimeService.getMonthText(this.lang, this.currentMonthObject$.value.monthIndex);
|
|
17669
|
+
// this.pendingYear = value.getFullYear();
|
|
17670
|
+
// this.pendingMonthIndex = value.getMonth();
|
|
17671
|
+
// this.pendingDay = value.getDate();
|
|
17672
|
+
// }
|
|
17673
|
+
// if (obj === null || obj === undefined) {
|
|
17674
|
+
/*
|
|
17675
|
+
let now = new Date();
|
|
17676
|
+
if (!!this.rangeLimit) {
|
|
17677
|
+
now = this.rangeLimit.minDate;
|
|
17678
|
+
}
|
|
17679
|
+
this.textValue = '';
|
|
17680
|
+
this.enrichment.register(this.form, this.fieldName, "");
|
|
17681
|
+
this.currentMonthObject$.next({
|
|
17682
|
+
year: now.getFullYear(),
|
|
17683
|
+
monthIndex: now.getMonth()
|
|
17684
|
+
})
|
|
17685
|
+
this.currentHours = now.getHours();
|
|
17686
|
+
this.currentMinutes = now.getMinutes();
|
|
17687
|
+
this.currentSeconds = now.getSeconds();
|
|
17688
|
+
this.currentMilliseconds = now.getMilliseconds();
|
|
17689
|
+
this.currentMonthText = this.coreDatetimeService.getMonthText(this.lang, this.currentMonthObject$.value.monthIndex);
|
|
17690
|
+
*/
|
|
17691
|
+
// UI anchor only – do NOT create a Date value
|
|
17692
|
+
// const anchor = this.rangeLimit?.minDate
|
|
17693
|
+
// ?? new Date(new Date().getFullYear(), new Date().getMonth(), 1);
|
|
17694
|
+
// this.value = null;
|
|
17695
|
+
// this.textValue = '';
|
|
17696
|
+
// this.lastText = '';
|
|
17697
|
+
// this.enrichment.register(this.form, this.fieldName, "");
|
|
17698
|
+
// this.currentMonthObject$.next({
|
|
17699
|
+
// year: anchor.getFullYear(),
|
|
17700
|
+
// monthIndex: anchor.getMonth()
|
|
17701
|
+
// });
|
|
17702
|
+
// // ⛔ DO NOT set hours / minutes / seconds here
|
|
17703
|
+
// return;
|
|
17704
|
+
// } else {
|
|
17705
|
+
/* Convert UTC date to local date */
|
|
17706
|
+
// const originalDate: Date = new Date(obj);
|
|
17707
|
+
// const offset = (new Date()).getTimezoneOffset();
|
|
17708
|
+
// const dateValue = new Date(originalDate.getTime() - offset * 60000);
|
|
17709
|
+
/*--------------------------------------*/
|
|
17710
|
+
// NOTE:
|
|
17711
|
+
// JavaScript Date is already timezone-aware (runtime-based).
|
|
17712
|
+
// Do NOT manually apply timezone offsets here.
|
|
17713
|
+
// Manual offset adjustment causes date shifting near day boundaries.
|
|
17714
|
+
// Trước khi gọt timezone → nó là raw interpreted date
|
|
17715
|
+
// Sau khi gọt timezone → nó là UI Date
|
|
17716
|
+
// let dateValue = obj instanceof Date ? obj : new Date(obj);
|
|
17717
|
+
// // 🔒 Use timezone context ONLY ONCE, at form boundary
|
|
17718
|
+
// const tz = this.$timezoneId();
|
|
17719
|
+
// if (tz) {
|
|
17720
|
+
// dateValue = this.coreDatetimeService.interpretDateInTimezone(
|
|
17721
|
+
// dateValue,
|
|
17722
|
+
// tz
|
|
17723
|
+
// );
|
|
17724
|
+
// }
|
|
17725
|
+
// if (typeof obj!.getFullYear === 'function') {
|
|
17726
|
+
// updateProperties(dateValue);
|
|
17727
|
+
// } else if (typeof obj === 'string') {
|
|
17728
|
+
// const isDate = this.coreDatetimeService.isDateString(obj);
|
|
17729
|
+
// if (isDate) {
|
|
17730
|
+
// //const _obj = new Date(obj); // convert string to date
|
|
17731
|
+
// updateProperties(dateValue);
|
|
17732
|
+
// } else {
|
|
17733
|
+
// console.error("Invalid date input: ", obj);
|
|
17734
|
+
// }
|
|
17735
|
+
// } else {
|
|
17736
|
+
// console.error("Invalid date input: ", obj);
|
|
17737
|
+
// }
|
|
17738
|
+
// }
|
|
17739
|
+
// }
|
|
17527
17740
|
writeValue(input) {
|
|
17528
17741
|
console.log("UTC input ", input);
|
|
17529
|
-
|
|
17530
|
-
if (input === null) {
|
|
17742
|
+
// 1️⃣ Null = no intent → UI anchor only
|
|
17743
|
+
if (input === null || input === undefined || input === "") {
|
|
17744
|
+
const anchor = this.rangeLimit?.minDate
|
|
17745
|
+
?? new Date(new Date().getFullYear(), new Date().getMonth(), 1);
|
|
17531
17746
|
this.value = null;
|
|
17532
17747
|
this.textValue = '';
|
|
17748
|
+
this.lastText = '';
|
|
17533
17749
|
this.enrichment.register(this.form, this.fieldName, "");
|
|
17750
|
+
this.currentMonthObject$.next({
|
|
17751
|
+
year: anchor.getFullYear(),
|
|
17752
|
+
monthIndex: anchor.getMonth()
|
|
17753
|
+
});
|
|
17534
17754
|
return;
|
|
17535
17755
|
}
|
|
17536
|
-
|
|
17537
|
-
|
|
17538
|
-
|
|
17539
|
-
|
|
17540
|
-
else {
|
|
17541
|
-
obj = new Date(new Date(input).setHours(0, 0, 0, 0));
|
|
17542
|
-
}
|
|
17756
|
+
// 2️⃣ Normalize input to Date (intent exists)
|
|
17757
|
+
let dateValue;
|
|
17758
|
+
if (input instanceof Date) {
|
|
17759
|
+
dateValue = input;
|
|
17543
17760
|
}
|
|
17544
|
-
else if (
|
|
17545
|
-
|
|
17761
|
+
else if (typeof input === 'string') {
|
|
17762
|
+
if (!this.coreDatetimeService.isDateString(input)) {
|
|
17763
|
+
console.error("Invalid date input: ", input);
|
|
17764
|
+
return;
|
|
17765
|
+
}
|
|
17766
|
+
dateValue = new Date(input);
|
|
17546
17767
|
}
|
|
17547
17768
|
else {
|
|
17548
17769
|
console.error("Invalid date input");
|
|
17549
17770
|
return;
|
|
17550
17771
|
}
|
|
17772
|
+
// 3️⃣ Apply timezone context ONCE (boundary)
|
|
17773
|
+
const tz = this.$timezoneId();
|
|
17774
|
+
if (tz) {
|
|
17775
|
+
dateValue = this.coreDatetimeService.interpretDateInTimezone(dateValue, tz);
|
|
17776
|
+
}
|
|
17551
17777
|
const updateProperties = (value) => {
|
|
17552
17778
|
console.log("After convert to Local Date ", value);
|
|
17553
17779
|
this.value = value;
|
|
@@ -17567,46 +17793,8 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17567
17793
|
this.pendingMonthIndex = value.getMonth();
|
|
17568
17794
|
this.pendingDay = value.getDate();
|
|
17569
17795
|
};
|
|
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
|
-
}
|
|
17796
|
+
// 4️⃣ Sync UI from real Date
|
|
17797
|
+
updateProperties(dateValue);
|
|
17610
17798
|
}
|
|
17611
17799
|
onItemClick(date) {
|
|
17612
17800
|
if (this.readonly)
|
|
@@ -17629,7 +17817,8 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17629
17817
|
this.pendingMonthIndex = date.getMonth();
|
|
17630
17818
|
this.pendingDay = date.getDate();
|
|
17631
17819
|
this.markAsTouched();
|
|
17632
|
-
this.onChange(date);
|
|
17820
|
+
//this.onChange(date);
|
|
17821
|
+
this.onChange(this.applyRangePoint(date));
|
|
17633
17822
|
this.enrichment.register(this.form, this.fieldName, this.textValue);
|
|
17634
17823
|
this.hasError = false;
|
|
17635
17824
|
this.openState = false;
|
|
@@ -17642,7 +17831,8 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17642
17831
|
}
|
|
17643
17832
|
this.textValue = this.coreDatetimeService.dateToVnString(today);
|
|
17644
17833
|
this.markAsTouched();
|
|
17645
|
-
this.onChange(today);
|
|
17834
|
+
//this.onChange(today);
|
|
17835
|
+
this.onChange(this.applyRangePoint(today));
|
|
17646
17836
|
this.enrichment.register(this.form, this.fieldName, this.textValue);
|
|
17647
17837
|
this.openState = false;
|
|
17648
17838
|
}
|
|
@@ -17767,12 +17957,25 @@ class CoreDatePickerComponent extends CoreFormControlBaseComponent {
|
|
|
17767
17957
|
// this.hasError = false;
|
|
17768
17958
|
}
|
|
17769
17959
|
}
|
|
17770
|
-
|
|
17771
|
-
|
|
17960
|
+
applyRangePoint(date) {
|
|
17961
|
+
const rp = this.$rangePoint();
|
|
17962
|
+
if (!rp)
|
|
17963
|
+
return date; // legacy behavior
|
|
17964
|
+
const d = new Date(date);
|
|
17965
|
+
if (rp === 'start') {
|
|
17966
|
+
d.setHours(0, 0, 0, 0);
|
|
17967
|
+
}
|
|
17968
|
+
if (rp === 'inclusive-end') {
|
|
17969
|
+
d.setHours(23, 59, 59, 999);
|
|
17970
|
+
}
|
|
17971
|
+
return d;
|
|
17972
|
+
}
|
|
17973
|
+
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 }); }
|
|
17974
|
+
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
17975
|
{
|
|
17773
17976
|
provide: NG_VALUE_ACCESSOR,
|
|
17774
17977
|
multi: true,
|
|
17775
|
-
useExisting: CoreDatePickerComponent
|
|
17978
|
+
useExisting: forwardRef(() => CoreDatePickerComponent)
|
|
17776
17979
|
}
|
|
17777
17980
|
], 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
17981
|
}
|
|
@@ -17789,10 +17992,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
17789
17992
|
{
|
|
17790
17993
|
provide: NG_VALUE_ACCESSOR,
|
|
17791
17994
|
multi: true,
|
|
17792
|
-
useExisting: CoreDatePickerComponent
|
|
17995
|
+
useExisting: forwardRef(() => CoreDatePickerComponent)
|
|
17793
17996
|
}
|
|
17794
17997
|
], 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: [{
|
|
17998
|
+
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: DomService }, { type: CoreDatetimeService }, { type: MultiLanguageService }, { type: AlertService }, { type: AppConfigService }], propDecorators: { enableTimeZoneConverter: [{
|
|
17796
17999
|
type: Input
|
|
17797
18000
|
}], showPlaceholder: [{
|
|
17798
18001
|
type: Input
|
|
@@ -19943,7 +20146,7 @@ class EvaluateDialogComponent extends BaseComponent {
|
|
|
19943
20146
|
this.evaluateDialogService.numberInput = e;
|
|
19944
20147
|
}
|
|
19945
20148
|
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"] }] }); }
|
|
20149
|
+
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
20150
|
}
|
|
19948
20151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: EvaluateDialogComponent, decorators: [{
|
|
19949
20152
|
type: Component,
|
|
@@ -21939,7 +22142,7 @@ class CoreControlNoSeekerComponent extends BaseComponent {
|
|
|
21939
22142
|
this.control.click$?.next(e);
|
|
21940
22143
|
}
|
|
21941
22144
|
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"] }] }); }
|
|
22145
|
+
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", "$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
22146
|
}
|
|
21944
22147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoSeekerComponent, decorators: [{
|
|
21945
22148
|
type: Component,
|
|
@@ -23901,7 +24104,7 @@ class CoreControlNoGridBufferComponent extends BaseComponent {
|
|
|
23901
24104
|
this.control.click$?.next(e);
|
|
23902
24105
|
}
|
|
23903
24106
|
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"] }] }); }
|
|
24107
|
+
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
24108
|
}
|
|
23906
24109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoGridBufferComponent, decorators: [{
|
|
23907
24110
|
type: Component,
|
|
@@ -26085,7 +26288,7 @@ class CoreControlValueOnlyComponent {
|
|
|
26085
26288
|
});
|
|
26086
26289
|
}
|
|
26087
26290
|
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 }); }
|
|
26291
|
+
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
26292
|
}
|
|
26090
26293
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlValueOnlyComponent, decorators: [{
|
|
26091
26294
|
type: Component,
|
|
@@ -26642,7 +26845,7 @@ class CoreControlNoFormArrayComponent extends BaseComponent {
|
|
|
26642
26845
|
}
|
|
26643
26846
|
}
|
|
26644
26847
|
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$"] }] }); }
|
|
26848
|
+
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", "$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
26849
|
}
|
|
26647
26850
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoFormArrayComponent, decorators: [{
|
|
26648
26851
|
type: Component,
|
|
@@ -27830,40 +28033,34 @@ const CREATE_O = {
|
|
|
27830
28033
|
label: 'ID',
|
|
27831
28034
|
kind: 'string',
|
|
27832
28035
|
defaultValue: crypto.randomUUID(),
|
|
27833
|
-
|
|
28036
|
+
hidden: true,
|
|
28037
|
+
row: 1,
|
|
28038
|
+
flexSize: 0,
|
|
27834
28039
|
},
|
|
27835
28040
|
{
|
|
27836
28041
|
key: 'ORIGINAL_NAME',
|
|
27837
|
-
label: 'Tên chính danh lịch sử
|
|
28042
|
+
label: 'Tên chính danh lịch sử',
|
|
27838
28043
|
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
28044
|
validators: {
|
|
27851
28045
|
required: true,
|
|
27852
28046
|
minLength: 3,
|
|
27853
28047
|
maxLength: 255
|
|
27854
28048
|
},
|
|
27855
|
-
|
|
28049
|
+
row: 1,
|
|
28050
|
+
flexSize: 4,
|
|
27856
28051
|
},
|
|
27857
28052
|
{
|
|
27858
|
-
key: '
|
|
27859
|
-
label: 'Mã
|
|
28053
|
+
key: 'CODE',
|
|
28054
|
+
label: 'Mã',
|
|
27860
28055
|
kind: 'string',
|
|
28056
|
+
defaultValue: crypto.randomUUID().slice(0, 8).toUpperCase(),
|
|
27861
28057
|
validators: {
|
|
27862
28058
|
required: true,
|
|
27863
28059
|
minLength: 3,
|
|
27864
28060
|
maxLength: 255
|
|
27865
28061
|
},
|
|
27866
|
-
|
|
28062
|
+
row: 1,
|
|
28063
|
+
flexSize: 4,
|
|
27867
28064
|
},
|
|
27868
28065
|
{
|
|
27869
28066
|
key: 'TREE_ID',
|
|
@@ -27872,7 +28069,9 @@ const CREATE_O = {
|
|
|
27872
28069
|
defaultValue: true,
|
|
27873
28070
|
validators: {
|
|
27874
28071
|
required: true
|
|
27875
|
-
}
|
|
28072
|
+
},
|
|
28073
|
+
row: 1,
|
|
28074
|
+
flexSize: 4
|
|
27876
28075
|
},
|
|
27877
28076
|
{
|
|
27878
28077
|
key: 'IS_ROOT',
|
|
@@ -27881,7 +28080,9 @@ const CREATE_O = {
|
|
|
27881
28080
|
defaultValue: false,
|
|
27882
28081
|
validators: {
|
|
27883
28082
|
required: true
|
|
27884
|
-
}
|
|
28083
|
+
},
|
|
28084
|
+
row: 2,
|
|
28085
|
+
flexSize: 3,
|
|
27885
28086
|
},
|
|
27886
28087
|
{
|
|
27887
28088
|
key: 'AVAILABLE_UTC',
|
|
@@ -27889,7 +28090,9 @@ const CREATE_O = {
|
|
|
27889
28090
|
kind: 'date',
|
|
27890
28091
|
validators: {
|
|
27891
28092
|
required: true
|
|
27892
|
-
}
|
|
28093
|
+
},
|
|
28094
|
+
row: 2,
|
|
28095
|
+
flexSize: 4,
|
|
27893
28096
|
},
|
|
27894
28097
|
{
|
|
27895
28098
|
key: 'TIMEZONE_ID',
|
|
@@ -28350,40 +28553,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
28350
28553
|
], template: "<div class=\"core-timezone-container\">\r\n <core-dropdown \r\n [options$]=\"dropdownOptions$\"\r\n [warningDisable]=\"true\"\r\n [(ngModel)]=\"value\"\r\n (ngModelOnchange)=\"onValueChange($event)\"\r\n />\r\n</div>\r\n" }]
|
|
28351
28554
|
}] });
|
|
28352
28555
|
|
|
28353
|
-
class CoreTreeReferenceComponent extends CoreFormControlBaseComponent {
|
|
28354
|
-
constructor() {
|
|
28355
|
-
super(...arguments);
|
|
28356
|
-
this.$data = input.required();
|
|
28357
|
-
this.$itemTemplateRef = input();
|
|
28358
|
-
this.selected = output();
|
|
28359
|
-
}
|
|
28360
|
-
onSelect(node) {
|
|
28361
|
-
this.selected.emit(node);
|
|
28362
|
-
this.value = node.id;
|
|
28363
|
-
console.log("onSelect", this.value);
|
|
28364
|
-
}
|
|
28365
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreTreeReferenceComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
28366
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreTreeReferenceComponent, isStandalone: true, selector: "core-tree-reference", inputs: { $data: { classPropertyName: "$data", publicName: "$data", isSignal: true, isRequired: true, transformFunction: null }, $itemTemplateRef: { classPropertyName: "$itemTemplateRef", publicName: "$itemTemplateRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, providers: [
|
|
28367
|
-
{
|
|
28368
|
-
provide: NG_VALUE_ACCESSOR,
|
|
28369
|
-
multi: true,
|
|
28370
|
-
useExisting: forwardRef(() => CoreTreeReferenceComponent),
|
|
28371
|
-
},
|
|
28372
|
-
], usesInheritance: true, ngImport: i0, template: "<ul class=\"core-tree-root\">\r\n @for (node of $data(); track node.id) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"nodeWrapperTpl\"\r\n [ngTemplateOutletContext]=\"{ node: node, level: 0 }\">\r\n </ng-container>\r\n }\r\n</ul>\r\n\r\n<ng-template #nodeWrapperTpl let-node=\"node\" let-level=\"level\">\r\n <li\r\n class=\"core-tree-node\"\r\n [style.paddingLeft.px]=\"level * 16\"\r\n (click)=\"onSelect(node)\"\r\n >\r\n <!-- CH\u1EC8 render n\u1ED9i dung -->\r\n <ng-container\r\n [ngTemplateOutlet]=\"$itemTemplateRef() ?? defaultItemTpl\"\r\n [ngTemplateOutletContext]=\"{ node: node, level: level }\">\r\n </ng-container>\r\n </li>\r\n\r\n @if (node.children?.length) {\r\n @for (child of node.children; track child.id) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"nodeWrapperTpl\"\r\n [ngTemplateOutletContext]=\"{ node: child, level: level + 1 }\">\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultItemTpl let-node=\"node\">\r\n <span class=\"node-label\">{{ node.label }}</span>\r\n</ng-template>\r\n", styles: [".core-tree-root{list-style:none;margin:0;padding:0}.core-tree-node{display:flex;align-items:center;gap:8px;padding:4px 8px;cursor:pointer;border-radius:4px}.core-tree-node:hover{background-color:#f3f5f7}.node-label{font-size:14px;color:#1f2937}.node-hint{font-size:11px;color:#6b7280;opacity:.7}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
28373
|
-
}
|
|
28374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreTreeReferenceComponent, decorators: [{
|
|
28375
|
-
type: Component,
|
|
28376
|
-
args: [{ selector: 'core-tree-reference', imports: [
|
|
28377
|
-
NgTemplateOutlet
|
|
28378
|
-
], providers: [
|
|
28379
|
-
{
|
|
28380
|
-
provide: NG_VALUE_ACCESSOR,
|
|
28381
|
-
multi: true,
|
|
28382
|
-
useExisting: forwardRef(() => CoreTreeReferenceComponent),
|
|
28383
|
-
},
|
|
28384
|
-
], template: "<ul class=\"core-tree-root\">\r\n @for (node of $data(); track node.id) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"nodeWrapperTpl\"\r\n [ngTemplateOutletContext]=\"{ node: node, level: 0 }\">\r\n </ng-container>\r\n }\r\n</ul>\r\n\r\n<ng-template #nodeWrapperTpl let-node=\"node\" let-level=\"level\">\r\n <li\r\n class=\"core-tree-node\"\r\n [style.paddingLeft.px]=\"level * 16\"\r\n (click)=\"onSelect(node)\"\r\n >\r\n <!-- CH\u1EC8 render n\u1ED9i dung -->\r\n <ng-container\r\n [ngTemplateOutlet]=\"$itemTemplateRef() ?? defaultItemTpl\"\r\n [ngTemplateOutletContext]=\"{ node: node, level: level }\">\r\n </ng-container>\r\n </li>\r\n\r\n @if (node.children?.length) {\r\n @for (child of node.children; track child.id) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"nodeWrapperTpl\"\r\n [ngTemplateOutletContext]=\"{ node: child, level: level + 1 }\">\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultItemTpl let-node=\"node\">\r\n <span class=\"node-label\">{{ node.label }}</span>\r\n</ng-template>\r\n", styles: [".core-tree-root{list-style:none;margin:0;padding:0}.core-tree-node{display:flex;align-items:center;gap:8px;padding:4px 8px;cursor:pointer;border-radius:4px}.core-tree-node:hover{background-color:#f3f5f7}.node-label{font-size:14px;color:#1f2937}.node-hint{font-size:11px;color:#6b7280;opacity:.7}\n"] }]
|
|
28385
|
-
}] });
|
|
28386
|
-
|
|
28387
28556
|
// Mock data for CoreTreeReferenceComponent
|
|
28388
28557
|
// Demonstrates:
|
|
28389
28558
|
// - Multiple root trees
|
|
@@ -28517,6 +28686,184 @@ const MOCK_DATA = [
|
|
|
28517
28686
|
}
|
|
28518
28687
|
];
|
|
28519
28688
|
|
|
28689
|
+
class CoreTreeReferenceComponent extends CoreFormControlBaseComponent {
|
|
28690
|
+
constructor() {
|
|
28691
|
+
super(...arguments);
|
|
28692
|
+
this.$data = input.required();
|
|
28693
|
+
this.$itemTemplateRef = input();
|
|
28694
|
+
this.selected = output();
|
|
28695
|
+
}
|
|
28696
|
+
onSelect(node) {
|
|
28697
|
+
this.selected.emit(node);
|
|
28698
|
+
this.value = node.id;
|
|
28699
|
+
console.log("onSelect", this.value);
|
|
28700
|
+
}
|
|
28701
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreTreeReferenceComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
28702
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreTreeReferenceComponent, isStandalone: true, selector: "core-tree-reference", inputs: { $data: { classPropertyName: "$data", publicName: "$data", isSignal: true, isRequired: true, transformFunction: null }, $itemTemplateRef: { classPropertyName: "$itemTemplateRef", publicName: "$itemTemplateRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, providers: [
|
|
28703
|
+
{
|
|
28704
|
+
provide: NG_VALUE_ACCESSOR,
|
|
28705
|
+
multi: true,
|
|
28706
|
+
useExisting: forwardRef(() => CoreTreeReferenceComponent),
|
|
28707
|
+
},
|
|
28708
|
+
], usesInheritance: true, ngImport: i0, template: "<ul class=\"core-tree-root\">\r\n @for (node of $data(); track node.id) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"nodeWrapperTpl\"\r\n [ngTemplateOutletContext]=\"{ node: node, level: 0 }\">\r\n </ng-container>\r\n }\r\n</ul>\r\n\r\n<ng-template #nodeWrapperTpl let-node=\"node\" let-level=\"level\">\r\n <li\r\n class=\"core-tree-node\"\r\n [style.paddingLeft.px]=\"level * 16\"\r\n (click)=\"onSelect(node)\"\r\n >\r\n <!-- CH\u1EC8 render n\u1ED9i dung -->\r\n <ng-container\r\n [ngTemplateOutlet]=\"$itemTemplateRef() ?? defaultItemTpl\"\r\n [ngTemplateOutletContext]=\"{ node: node, level: level }\">\r\n </ng-container>\r\n </li>\r\n\r\n @if (node.children?.length) {\r\n @for (child of node.children; track child.id) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"nodeWrapperTpl\"\r\n [ngTemplateOutletContext]=\"{ node: child, level: level + 1 }\">\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultItemTpl let-node=\"node\">\r\n <span class=\"node-label\">{{ node.label }}</span>\r\n</ng-template>\r\n", styles: [".core-tree-root{list-style:none;margin:0;padding:0}.core-tree-node{display:flex;align-items:center;gap:8px;padding:4px 8px;cursor:pointer;border-radius:4px}.core-tree-node:hover{background-color:#f3f5f7}.node-label{font-size:14px;color:#1f2937}.node-hint{font-size:11px;color:#6b7280;opacity:.7}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
28709
|
+
}
|
|
28710
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreTreeReferenceComponent, decorators: [{
|
|
28711
|
+
type: Component,
|
|
28712
|
+
args: [{ selector: 'core-tree-reference', imports: [
|
|
28713
|
+
NgTemplateOutlet
|
|
28714
|
+
], providers: [
|
|
28715
|
+
{
|
|
28716
|
+
provide: NG_VALUE_ACCESSOR,
|
|
28717
|
+
multi: true,
|
|
28718
|
+
useExisting: forwardRef(() => CoreTreeReferenceComponent),
|
|
28719
|
+
},
|
|
28720
|
+
], template: "<ul class=\"core-tree-root\">\r\n @for (node of $data(); track node.id) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"nodeWrapperTpl\"\r\n [ngTemplateOutletContext]=\"{ node: node, level: 0 }\">\r\n </ng-container>\r\n }\r\n</ul>\r\n\r\n<ng-template #nodeWrapperTpl let-node=\"node\" let-level=\"level\">\r\n <li\r\n class=\"core-tree-node\"\r\n [style.paddingLeft.px]=\"level * 16\"\r\n (click)=\"onSelect(node)\"\r\n >\r\n <!-- CH\u1EC8 render n\u1ED9i dung -->\r\n <ng-container\r\n [ngTemplateOutlet]=\"$itemTemplateRef() ?? defaultItemTpl\"\r\n [ngTemplateOutletContext]=\"{ node: node, level: level }\">\r\n </ng-container>\r\n </li>\r\n\r\n @if (node.children?.length) {\r\n @for (child of node.children; track child.id) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"nodeWrapperTpl\"\r\n [ngTemplateOutletContext]=\"{ node: child, level: level + 1 }\">\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultItemTpl let-node=\"node\">\r\n <span class=\"node-label\">{{ node.label }}</span>\r\n</ng-template>\r\n", styles: [".core-tree-root{list-style:none;margin:0;padding:0}.core-tree-node{display:flex;align-items:center;gap:8px;padding:4px 8px;cursor:pointer;border-radius:4px}.core-tree-node:hover{background-color:#f3f5f7}.node-label{font-size:14px;color:#1f2937}.node-hint{font-size:11px;color:#6b7280;opacity:.7}\n"] }]
|
|
28721
|
+
}] });
|
|
28722
|
+
|
|
28723
|
+
class DomEntityTokenComponent {
|
|
28724
|
+
constructor() {
|
|
28725
|
+
this.$token = input.required();
|
|
28726
|
+
this.$mode = input('compact');
|
|
28727
|
+
}
|
|
28728
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomEntityTokenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28729
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: DomEntityTokenComponent, isStandalone: true, selector: "dom-entity-token", inputs: { $token: { classPropertyName: "$token", publicName: "$token", isSignal: true, isRequired: true, transformFunction: null }, $mode: { classPropertyName: "$mode", publicName: "$mode", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, 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"], dependencies: [{ kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "color", "backgroundColor", "hold$"] }] }); }
|
|
28730
|
+
}
|
|
28731
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomEntityTokenComponent, decorators: [{
|
|
28732
|
+
type: Component,
|
|
28733
|
+
args: [{ selector: 'dom-entity-token', imports: [
|
|
28734
|
+
HtmlTooltipDirective
|
|
28735
|
+
], 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"] }]
|
|
28736
|
+
}] });
|
|
28737
|
+
|
|
28738
|
+
class DomDecisionContextService {
|
|
28739
|
+
constructor() {
|
|
28740
|
+
// Omega được cấp từ Editor
|
|
28741
|
+
this.$omega = signal(null);
|
|
28742
|
+
// Derived – không lưu state
|
|
28743
|
+
this.$availableTokens = computed(() => {
|
|
28744
|
+
const omega = this.$omega();
|
|
28745
|
+
if (!omega)
|
|
28746
|
+
return [];
|
|
28747
|
+
const map = new Map();
|
|
28748
|
+
function isEntityToken(v) {
|
|
28749
|
+
return !!v
|
|
28750
|
+
&& typeof v === 'object'
|
|
28751
|
+
&& 'uuid' in v
|
|
28752
|
+
&& 'entityType' in v
|
|
28753
|
+
&& 'token' in v;
|
|
28754
|
+
}
|
|
28755
|
+
for (const intent of omega.inputChain) {
|
|
28756
|
+
for (const value of Object.values(intent.input ?? {})) {
|
|
28757
|
+
if (isEntityToken(value)) {
|
|
28758
|
+
if (!map.has(value.uuid)) {
|
|
28759
|
+
map.set(value.uuid, {
|
|
28760
|
+
...value,
|
|
28761
|
+
producedBySeq: intent.seq
|
|
28762
|
+
});
|
|
28763
|
+
}
|
|
28764
|
+
}
|
|
28765
|
+
}
|
|
28766
|
+
}
|
|
28767
|
+
return Array.from(map.values());
|
|
28768
|
+
});
|
|
28769
|
+
}
|
|
28770
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28771
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService }); }
|
|
28772
|
+
}
|
|
28773
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService, decorators: [{
|
|
28774
|
+
type: Injectable
|
|
28775
|
+
}] });
|
|
28776
|
+
|
|
28777
|
+
/**
|
|
28778
|
+
* DomOIdFactoryComponent
|
|
28779
|
+
*
|
|
28780
|
+
* Đây KHÔNG phải là một picker thông thường, cũng không phải là một input CRUD.
|
|
28781
|
+
*
|
|
28782
|
+
* Component này đóng vai trò là “Symbolic Reference Binder” trong ngữ cảnh
|
|
28783
|
+
* CoreDomDecisionEditor. Nhiệm vụ duy nhất của nó là cho phép người dùng:
|
|
28784
|
+
* - Phát biểu một danh từ tổ chức (O) dưới dạng ý định (literal),
|
|
28785
|
+
* - Hoặc ràng buộc tới một token tổ chức đã được nhắc tới ở các Seq trước đó.
|
|
28786
|
+
*
|
|
28787
|
+
* Các nguyên tắc bất biến:
|
|
28788
|
+
* - KHÔNG sinh entity mới.
|
|
28789
|
+
* - KHÔNG tạo ID giả, KHÔNG mô phỏng DB.
|
|
28790
|
+
* - KHÔNG giữ state riêng về token.
|
|
28791
|
+
* - KHÔNG nhận token qua @Input().
|
|
28792
|
+
*
|
|
28793
|
+
* DomOIdFactory chỉ đọc “sự thật ngữ cảnh” từ DomDecisionContextService,
|
|
28794
|
+
* nơi tập hợp các token hợp lệ theo activeSeq hiện tại của Decision.
|
|
28795
|
+
* Nhờ đó, component này không bao giờ cho phép người dùng
|
|
28796
|
+
* “nhắc tới tương lai” hoặc phá vỡ quan hệ nhân quả của Intent Chain.
|
|
28797
|
+
*
|
|
28798
|
+
* Giá trị mà component ghi vào form KHÔNG phải là PK/ID DB,
|
|
28799
|
+
* mà là một biểu thức tham chiếu mang tính ngôn ngữ (symbolic reference),
|
|
28800
|
+
* sẽ được resolve duy nhất ở giai đoạn Executor.
|
|
28801
|
+
*
|
|
28802
|
+
* Component này chỉ được phép sử dụng bên trong CoreDomDecisionEditor.
|
|
28803
|
+
* 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,
|
|
28804
|
+
* không được mang DomOIdFactory ra khỏi Decision boundary.
|
|
28805
|
+
*
|
|
28806
|
+
* DomOIdFactoryComponent là tiền đề kiến trúc cho các component cùng họ:
|
|
28807
|
+
* - DomSIdFactoryComponent
|
|
28808
|
+
* - DomPIdFactoryComponent
|
|
28809
|
+
*
|
|
28810
|
+
* Nếu component này bị đơn giản hóa hoặc dùng sai ngữ cảnh,
|
|
28811
|
+
* toàn bộ mô hình Token / Decision / Executor phía sau sẽ mất ý nghĩa.
|
|
28812
|
+
*/
|
|
28813
|
+
class DomOIdFactoryComponent extends CoreFormControlBaseComponent {
|
|
28814
|
+
constructor() {
|
|
28815
|
+
super(...arguments);
|
|
28816
|
+
this.ctx = inject(DomDecisionContextService);
|
|
28817
|
+
this.$tokens = this.ctx.$availableTokens;
|
|
28818
|
+
this.$loading = signal(false);
|
|
28819
|
+
this.$searchText = signal('');
|
|
28820
|
+
this.$displayName = signal('');
|
|
28821
|
+
this.$open = signal(false);
|
|
28822
|
+
this.MOCK_DATA = MOCK_DATA;
|
|
28823
|
+
}
|
|
28824
|
+
onTokenPicked(t) {
|
|
28825
|
+
// bind symbolic reference into form control
|
|
28826
|
+
this.writeValue({
|
|
28827
|
+
kind: 'OutputRef',
|
|
28828
|
+
value: t.token
|
|
28829
|
+
});
|
|
28830
|
+
}
|
|
28831
|
+
onSearchTextChange(e) {
|
|
28832
|
+
this.$searchText.set(e);
|
|
28833
|
+
}
|
|
28834
|
+
onPopupToggle() {
|
|
28835
|
+
this.$open.set(!this.$open());
|
|
28836
|
+
}
|
|
28837
|
+
onTreeItemSelected(e) {
|
|
28838
|
+
this.$displayName.set(e.label);
|
|
28839
|
+
this.onChange(e.id);
|
|
28840
|
+
this.$open.set(false);
|
|
28841
|
+
}
|
|
28842
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomOIdFactoryComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
28843
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: DomOIdFactoryComponent, isStandalone: true, selector: "dom-oid-factory", providers: [
|
|
28844
|
+
{
|
|
28845
|
+
provide: NG_VALUE_ACCESSOR,
|
|
28846
|
+
multi: true,
|
|
28847
|
+
useExisting: forwardRef(() => DomOIdFactoryComponent),
|
|
28848
|
+
},
|
|
28849
|
+
], 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 }] }); }
|
|
28850
|
+
}
|
|
28851
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomOIdFactoryComponent, decorators: [{
|
|
28852
|
+
type: Component,
|
|
28853
|
+
args: [{ selector: 'dom-oid-factory', imports: [
|
|
28854
|
+
CoreRotatingTextComponent,
|
|
28855
|
+
DomEntityTokenComponent,
|
|
28856
|
+
CoreTreeReferenceComponent,
|
|
28857
|
+
FormsModule
|
|
28858
|
+
], providers: [
|
|
28859
|
+
{
|
|
28860
|
+
provide: NG_VALUE_ACCESSOR,
|
|
28861
|
+
multi: true,
|
|
28862
|
+
useExisting: forwardRef(() => DomOIdFactoryComponent),
|
|
28863
|
+
},
|
|
28864
|
+
], 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"] }]
|
|
28865
|
+
}] });
|
|
28866
|
+
|
|
28520
28867
|
class IntentComposerComponent extends BaseComponent {
|
|
28521
28868
|
constructor(mls) {
|
|
28522
28869
|
super(mls);
|
|
@@ -28594,6 +28941,7 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
28594
28941
|
}
|
|
28595
28942
|
}
|
|
28596
28943
|
this.form = new FormGroup(controls);
|
|
28944
|
+
this.applyActionSpecificBehavior(descriptor);
|
|
28597
28945
|
}
|
|
28598
28946
|
onInputChange(key, value) {
|
|
28599
28947
|
this.$draftInput.update(prev => ({
|
|
@@ -28692,8 +29040,22 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
28692
29040
|
getErrorsOfField(fieldKey) {
|
|
28693
29041
|
return this.$errors().filter(e => e.fieldKey === fieldKey);
|
|
28694
29042
|
}
|
|
29043
|
+
applyActionSpecificBehavior(descriptor) {
|
|
29044
|
+
if (descriptor.actionCode !== EnumActionCode.CREATE_O)
|
|
29045
|
+
return;
|
|
29046
|
+
const codeCtrl = this.form.get('CODE');
|
|
29047
|
+
const shortCodeCtrl = this.form.get('SHORT_CODE');
|
|
29048
|
+
if (!codeCtrl || !shortCodeCtrl)
|
|
29049
|
+
return;
|
|
29050
|
+
// CODE luôn là UUID, user không nhập
|
|
29051
|
+
const code = crypto.randomUUID();
|
|
29052
|
+
codeCtrl.setValue(code);
|
|
29053
|
+
codeCtrl.disable({ emitEvent: false });
|
|
29054
|
+
// SHORT_CODE default, nhưng user được sửa
|
|
29055
|
+
shortCodeCtrl.setValue(code.substring(0, 8).toUpperCase(), { emitEvent: false });
|
|
29056
|
+
}
|
|
28695
29057
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IntentComposerComponent, deps: [{ token: MultiLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28696
|
-
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
|
|
29058
|
+
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 <!-- <core-tree-reference \r\n [formControlName]=\"input.key\"\r\n [$data]=\"MOCK_DATA\"\r\n [$itemTemplateRef]=\"$defaultOrgItemTpl()\"\r\n /> -->\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" }] }); }
|
|
28697
29059
|
}
|
|
28698
29060
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IntentComposerComponent, decorators: [{
|
|
28699
29061
|
type: Component,
|
|
@@ -28704,9 +29066,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
28704
29066
|
CoreDatePickerComponent,
|
|
28705
29067
|
CoreDropdownComponent,
|
|
28706
29068
|
CoreTimezoneComponent,
|
|
28707
|
-
|
|
29069
|
+
DomOIdFactoryComponent,
|
|
28708
29070
|
TranslatePipe,
|
|
28709
|
-
], 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
|
|
29071
|
+
], 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 <!-- <core-tree-reference \r\n [formControlName]=\"input.key\"\r\n [$data]=\"MOCK_DATA\"\r\n [$itemTemplateRef]=\"$defaultOrgItemTpl()\"\r\n /> -->\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"] }]
|
|
28710
29072
|
}], ctorParameters: () => [{ type: MultiLanguageService }] });
|
|
28711
29073
|
|
|
28712
29074
|
/**
|
|
@@ -28723,7 +29085,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
28723
29085
|
*/
|
|
28724
29086
|
class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
28725
29087
|
constructor() {
|
|
28726
|
-
super(
|
|
29088
|
+
super();
|
|
29089
|
+
this.ctx = inject(DomDecisionContextService);
|
|
28727
29090
|
this.$omega = signal({
|
|
28728
29091
|
omegaVersion: '1.0',
|
|
28729
29092
|
inputChain: []
|
|
@@ -28746,6 +29109,32 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
28746
29109
|
}
|
|
28747
29110
|
return this.rebuildProjectionFromOmega(omega);
|
|
28748
29111
|
});
|
|
29112
|
+
this.$availableTokens = computed(() => {
|
|
29113
|
+
const omega = this.$omega();
|
|
29114
|
+
const map = new Map();
|
|
29115
|
+
function isEntityToken(v) {
|
|
29116
|
+
return !!v
|
|
29117
|
+
&& typeof v === 'object'
|
|
29118
|
+
&& 'uuid' in v
|
|
29119
|
+
&& 'entityType' in v
|
|
29120
|
+
&& 'token' in v;
|
|
29121
|
+
}
|
|
29122
|
+
for (const intent of omega.inputChain) {
|
|
29123
|
+
for (const key of Object.keys(intent.input ?? {})) {
|
|
29124
|
+
const value = intent.input[key];
|
|
29125
|
+
// Chỉ quan tâm tới symbolic entity token
|
|
29126
|
+
if (isEntityToken(value)) {
|
|
29127
|
+
// dedupe theo uuid
|
|
29128
|
+
map.set(value.uuid, value);
|
|
29129
|
+
}
|
|
29130
|
+
}
|
|
29131
|
+
}
|
|
29132
|
+
return Array.from(map.values());
|
|
29133
|
+
});
|
|
29134
|
+
// Bind omega → context
|
|
29135
|
+
effect(() => {
|
|
29136
|
+
this.ctx.$omega.set(this.$omega());
|
|
29137
|
+
});
|
|
28749
29138
|
}
|
|
28750
29139
|
writeValue(omega) {
|
|
28751
29140
|
this.value = omega ?? '';
|
|
@@ -28782,7 +29171,22 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
28782
29171
|
}
|
|
28783
29172
|
onViewIntent(e) {
|
|
28784
29173
|
}
|
|
28785
|
-
onRemoveIntent(
|
|
29174
|
+
onRemoveIntent(seq) {
|
|
29175
|
+
this.$omega.update(omega => {
|
|
29176
|
+
// 1️⃣ Lọc bỏ intent cần gỡ
|
|
29177
|
+
const remaining = omega.inputChain
|
|
29178
|
+
.filter(i => i.seq !== seq);
|
|
29179
|
+
// 2️⃣ Reindex seq để đảm bảo liên tục
|
|
29180
|
+
const reindexed = remaining.map((intent, index) => ({
|
|
29181
|
+
...intent,
|
|
29182
|
+
seq: index + 1
|
|
29183
|
+
}));
|
|
29184
|
+
// 3️⃣ Trả về omega mới
|
|
29185
|
+
return {
|
|
29186
|
+
...omega,
|
|
29187
|
+
inputChain: reindexed
|
|
29188
|
+
};
|
|
29189
|
+
});
|
|
28786
29190
|
}
|
|
28787
29191
|
onSelectIntent(descriptor) {
|
|
28788
29192
|
this.$selectedIntentDescriptor.set(descriptor);
|
|
@@ -28807,14 +29211,20 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
28807
29211
|
});
|
|
28808
29212
|
this.$showIntentComposer.set(false);
|
|
28809
29213
|
}
|
|
28810
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDomDecisionEditorComponent, deps:
|
|
29214
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDomDecisionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28811
29215
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreDomDecisionEditorComponent, isStandalone: true, selector: "core-dom-decision-editor", providers: [
|
|
29216
|
+
// Provider scope (CỰC KỲ QUAN TRỌNG)
|
|
29217
|
+
// Service này chết cùng Editor
|
|
29218
|
+
// Không leak
|
|
29219
|
+
// Không share
|
|
29220
|
+
// Không nhớ sai
|
|
29221
|
+
DomDecisionContextService,
|
|
28812
29222
|
{
|
|
28813
29223
|
provide: NG_VALUE_ACCESSOR,
|
|
28814
29224
|
multi: true,
|
|
28815
29225
|
useExisting: forwardRef(() => CoreDomDecisionEditorComponent),
|
|
28816
29226
|
},
|
|
28817
|
-
], 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-title\">\r\n <h2>Quy\u1EBFt \u0111\u1ECBnh t\u1ED5 ch\u1EE9c</h2>\r\n <p class=\"editor-subtitle\">\r\n So\u1EA1n th\u1EA3o m\u1ED9t quy\u1EBFt \u0111\u1ECBnh OM b\u1EA5t bi\u1EBFn (Omega)\r\n </p>\r\n </div>\r\n\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 <h3>Chu\u1ED7i \u00FD \u0111\u1ECBnh (Intent Chain)</h3>\r\n\r\n @if ($projection().intents.length === 0) {\r\n <div class=\"empty-state\">\r\n <p>Ch\u01B0a c\u00F3 intent n\u00E0o trong quy\u1EBFt \u0111\u1ECBnh n\u00E0y.</p>\r\n <p class=\"hint\">\r\n B\u1EAFt \u0111\u1EA7u b\u1EB1ng c\u00E1ch th\u00EAm intent \u0111\u1EA7u ti\u00EAn.\r\n </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\">\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\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 <h3>K\u1EBFt qu\u1EA3 d\u1EF1 ki\u1EBFn (Preview)</h3>\r\n\r\n <p class=\"hint\">\r\n K\u1EBFt qu\u1EA3 n\u00E0y \u0111\u01B0\u1EE3c suy ra t\u1EEB Intent Chain, kh\u00F4ng th\u1EC3 ch\u1EC9nh s\u1EEDa.\r\n </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;font-weight:600;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" }] }); }
|
|
29227
|
+
], 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-title\">\r\n <h2>Quy\u1EBFt \u0111\u1ECBnh t\u1ED5 ch\u1EE9c</h2>\r\n <p class=\"editor-subtitle\">\r\n So\u1EA1n th\u1EA3o m\u1ED9t quy\u1EBFt \u0111\u1ECBnh OM b\u1EA5t bi\u1EBFn (Omega)\r\n </p>\r\n </div>\r\n\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 <h3>Chu\u1ED7i \u00FD \u0111\u1ECBnh (Intent Chain)</h3>\r\n\r\n @if ($projection().intents.length === 0) {\r\n <div class=\"empty-state\">\r\n <p>Ch\u01B0a c\u00F3 intent n\u00E0o trong quy\u1EBFt \u0111\u1ECBnh n\u00E0y.</p>\r\n <p class=\"hint\">\r\n B\u1EAFt \u0111\u1EA7u b\u1EB1ng c\u00E1ch th\u00EAm intent \u0111\u1EA7u ti\u00EAn.\r\n </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\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 <h3>K\u1EBFt qu\u1EA3 d\u1EF1 ki\u1EBFn (Preview)</h3>\r\n\r\n <p class=\"hint\">\r\n K\u1EBFt qu\u1EA3 n\u00E0y \u0111\u01B0\u1EE3c suy ra t\u1EEB Intent Chain, kh\u00F4ng th\u1EC3 ch\u1EC9nh s\u1EEDa.\r\n </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;font-weight:600;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" }] }); }
|
|
28818
29228
|
}
|
|
28819
29229
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDomDecisionEditorComponent, decorators: [{
|
|
28820
29230
|
type: Component,
|
|
@@ -28822,13 +29232,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
28822
29232
|
IntentComposerComponent,
|
|
28823
29233
|
JsonPipe,
|
|
28824
29234
|
], providers: [
|
|
29235
|
+
// Provider scope (CỰC KỲ QUAN TRỌNG)
|
|
29236
|
+
// Service này chết cùng Editor
|
|
29237
|
+
// Không leak
|
|
29238
|
+
// Không share
|
|
29239
|
+
// Không nhớ sai
|
|
29240
|
+
DomDecisionContextService,
|
|
28825
29241
|
{
|
|
28826
29242
|
provide: NG_VALUE_ACCESSOR,
|
|
28827
29243
|
multi: true,
|
|
28828
29244
|
useExisting: forwardRef(() => CoreDomDecisionEditorComponent),
|
|
28829
29245
|
},
|
|
28830
|
-
], 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-title\">\r\n <h2>Quy\u1EBFt \u0111\u1ECBnh t\u1ED5 ch\u1EE9c</h2>\r\n <p class=\"editor-subtitle\">\r\n So\u1EA1n th\u1EA3o m\u1ED9t quy\u1EBFt \u0111\u1ECBnh OM b\u1EA5t bi\u1EBFn (Omega)\r\n </p>\r\n </div>\r\n\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 <h3>Chu\u1ED7i \u00FD \u0111\u1ECBnh (Intent Chain)</h3>\r\n\r\n @if ($projection().intents.length === 0) {\r\n <div class=\"empty-state\">\r\n <p>Ch\u01B0a c\u00F3 intent n\u00E0o trong quy\u1EBFt \u0111\u1ECBnh n\u00E0y.</p>\r\n <p class=\"hint\">\r\n B\u1EAFt \u0111\u1EA7u b\u1EB1ng c\u00E1ch th\u00EAm intent \u0111\u1EA7u ti\u00EAn.\r\n </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\">\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\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 <h3>K\u1EBFt qu\u1EA3 d\u1EF1 ki\u1EBFn (Preview)</h3>\r\n\r\n <p class=\"hint\">\r\n K\u1EBFt qu\u1EA3 n\u00E0y \u0111\u01B0\u1EE3c suy ra t\u1EEB Intent Chain, kh\u00F4ng th\u1EC3 ch\u1EC9nh s\u1EEDa.\r\n </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;font-weight:600;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"] }]
|
|
28831
|
-
}] });
|
|
29246
|
+
], 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-title\">\r\n <h2>Quy\u1EBFt \u0111\u1ECBnh t\u1ED5 ch\u1EE9c</h2>\r\n <p class=\"editor-subtitle\">\r\n So\u1EA1n th\u1EA3o m\u1ED9t quy\u1EBFt \u0111\u1ECBnh OM b\u1EA5t bi\u1EBFn (Omega)\r\n </p>\r\n </div>\r\n\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 <h3>Chu\u1ED7i \u00FD \u0111\u1ECBnh (Intent Chain)</h3>\r\n\r\n @if ($projection().intents.length === 0) {\r\n <div class=\"empty-state\">\r\n <p>Ch\u01B0a c\u00F3 intent n\u00E0o trong quy\u1EBFt \u0111\u1ECBnh n\u00E0y.</p>\r\n <p class=\"hint\">\r\n B\u1EAFt \u0111\u1EA7u b\u1EB1ng c\u00E1ch th\u00EAm intent \u0111\u1EA7u ti\u00EAn.\r\n </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\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 <h3>K\u1EBFt qu\u1EA3 d\u1EF1 ki\u1EBFn (Preview)</h3>\r\n\r\n <p class=\"hint\">\r\n K\u1EBFt qu\u1EA3 n\u00E0y \u0111\u01B0\u1EE3c suy ra t\u1EEB Intent Chain, kh\u00F4ng th\u1EC3 ch\u1EC9nh s\u1EEDa.\r\n </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;font-weight:600;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"] }]
|
|
29247
|
+
}], ctorParameters: () => [] });
|
|
28832
29248
|
|
|
28833
29249
|
class CoreControlComponent extends BaseComponent {
|
|
28834
29250
|
constructor(mls, alertService) {
|
|
@@ -28967,7 +29383,7 @@ class CoreControlComponent extends BaseComponent {
|
|
|
28967
29383
|
}
|
|
28968
29384
|
}
|
|
28969
29385
|
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 }); }
|
|
28970
|
-
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$"] }] }); }
|
|
29386
|
+
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 />\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$"] }] }); }
|
|
28971
29387
|
}
|
|
28972
29388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlComponent, decorators: [{
|
|
28973
29389
|
type: Component,
|
|
@@ -29002,7 +29418,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
29002
29418
|
CoreStickerCollectionComponent,
|
|
29003
29419
|
CoreDomDecisionEditorComponent,
|
|
29004
29420
|
HtmlTooltipDirective
|
|
29005
|
-
], 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"] }]
|
|
29421
|
+
], 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 />\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"] }]
|
|
29006
29422
|
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: AlertService }], propDecorators: { control: [{
|
|
29007
29423
|
type: Input
|
|
29008
29424
|
}], form: [{
|
|
@@ -29777,6 +30193,17 @@ class CorePageEditComponent {
|
|
|
29777
30193
|
}));
|
|
29778
30194
|
}
|
|
29779
30195
|
});
|
|
30196
|
+
setTimeout(() => {
|
|
30197
|
+
if (isDevMode()) {
|
|
30198
|
+
const missingRangePoint = this.sections
|
|
30199
|
+
.some(s => s.rows
|
|
30200
|
+
.some(r => r
|
|
30201
|
+
.some(c => c.controlType === EnumFormBaseContolType.DATEPICKER && !c.$rangePoint)));
|
|
30202
|
+
if (missingRangePoint) {
|
|
30203
|
+
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' });
|
|
30204
|
+
}
|
|
30205
|
+
}
|
|
30206
|
+
});
|
|
29780
30207
|
}
|
|
29781
30208
|
toggleReloadFlagForTheCaller(id) {
|
|
29782
30209
|
const instancesFilter = this.corePageListService.instances.filter((x) => x.instanceNumber === this.listInstance);
|
|
@@ -31756,7 +32183,7 @@ class CoreParamControlComponent extends BaseComponent {
|
|
|
31756
32183
|
this.ngModelSubscription?.unsubscribe();
|
|
31757
32184
|
}
|
|
31758
32185
|
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 }); }
|
|
31759
|
-
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"] }] }); }
|
|
32186
|
+
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"] }] }); }
|
|
31760
32187
|
}
|
|
31761
32188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreParamControlComponent, decorators: [{
|
|
31762
32189
|
type: Component,
|
|
@@ -32225,7 +32652,7 @@ class AtShiftPatternApplyComponent {
|
|
|
32225
32652
|
this.subscriptions.map(x => x?.unsubscribe());
|
|
32226
32653
|
}
|
|
32227
32654
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AtShiftPatternApplyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32228
|
-
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"] }] }); }
|
|
32655
|
+
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"] }] }); }
|
|
32229
32656
|
}
|
|
32230
32657
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AtShiftPatternApplyComponent, decorators: [{
|
|
32231
32658
|
type: Component,
|
|
@@ -33896,7 +34323,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
33896
34323
|
const hrmSchemaRoutes = [
|
|
33897
34324
|
{
|
|
33898
34325
|
path: '',
|
|
33899
|
-
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-
|
|
34326
|
+
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-DOjUVwDx.mjs').then(m => m.HrmSchemaComponent)
|
|
33900
34327
|
}
|
|
33901
34328
|
];
|
|
33902
34329
|
|
|
@@ -36069,7 +36496,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
36069
36496
|
const simpleChatRoutes = [
|
|
36070
36497
|
{
|
|
36071
36498
|
path: '',
|
|
36072
|
-
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-
|
|
36499
|
+
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-CyXzjXRl.mjs').then(m => m.SimpleChatComponent)
|
|
36073
36500
|
}
|
|
36074
36501
|
];
|
|
36075
36502
|
|
|
@@ -36735,7 +37162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
36735
37162
|
const coreSysActionRoutes = [
|
|
36736
37163
|
{
|
|
36737
37164
|
path: "",
|
|
36738
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-sys-action.component-
|
|
37165
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-sys-action.component-TvSEbkRY.mjs').then(m => m.CoreSysActionComponent),
|
|
36739
37166
|
children: [
|
|
36740
37167
|
{
|
|
36741
37168
|
path: ":id",
|
|
@@ -38128,11 +38555,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
38128
38555
|
const sysSmtpClientRoutes = [
|
|
38129
38556
|
{
|
|
38130
38557
|
path: '',
|
|
38131
|
-
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client.component-
|
|
38558
|
+
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client.component-D-eR59PP.mjs').then(m => m.SysSmtpClientComponent),
|
|
38132
38559
|
children: [
|
|
38133
38560
|
{
|
|
38134
38561
|
path: ':id',
|
|
38135
|
-
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client-edit.component-
|
|
38562
|
+
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client-edit.component-CPtDVzH6.mjs').then(m => m.SysSmtpClientEditComponent),
|
|
38136
38563
|
outlet: 'corePageListAux'
|
|
38137
38564
|
}
|
|
38138
38565
|
]
|
|
@@ -39318,11 +39745,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
39318
39745
|
const coreDocGenRoutes = [
|
|
39319
39746
|
{
|
|
39320
39747
|
path: 'template-list',
|
|
39321
|
-
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-
|
|
39748
|
+
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-D3y6Ikg6.mjs').then(m => m.TemplateListComponent),
|
|
39322
39749
|
},
|
|
39323
39750
|
{
|
|
39324
39751
|
path: ":id",
|
|
39325
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-
|
|
39752
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-BO2iHdtr.mjs').then(m => m.CoreTemplateEditorComponent),
|
|
39326
39753
|
canDeactivate: [CanDeactivateGuard]
|
|
39327
39754
|
},
|
|
39328
39755
|
{
|
|
@@ -39351,7 +39778,7 @@ const coreFormDesignRoutes = [
|
|
|
39351
39778
|
},
|
|
39352
39779
|
{
|
|
39353
39780
|
path: ':id',
|
|
39354
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-
|
|
39781
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-CgJL6bNn.mjs').then(m => m.CoreFormDesignComponent)
|
|
39355
39782
|
}
|
|
39356
39783
|
];
|
|
39357
39784
|
|
|
@@ -40262,7 +40689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
40262
40689
|
const coreNavigationTrackerRoutes = [
|
|
40263
40690
|
{
|
|
40264
40691
|
path: '',
|
|
40265
|
-
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-
|
|
40692
|
+
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-B33444ca.mjs').then(m => m.TrackerStudioComponent)
|
|
40266
40693
|
}
|
|
40267
40694
|
];
|
|
40268
40695
|
|
|
@@ -43365,33 +43792,33 @@ const coreWorkflowRoutes = [
|
|
|
43365
43792
|
{
|
|
43366
43793
|
path: 'form-assign/:id',
|
|
43367
43794
|
outlet: "formAssignAux",
|
|
43368
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-
|
|
43795
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-CjUVdHfA.mjs').then(m => m.WfFormAssignComponent),
|
|
43369
43796
|
canDeactivate: [CanDeactivateGuard]
|
|
43370
43797
|
}
|
|
43371
43798
|
]
|
|
43372
43799
|
},
|
|
43373
43800
|
{
|
|
43374
43801
|
path: 'global-config',
|
|
43375
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-
|
|
43802
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-C6E99R89.mjs').then(m => m.WfGlobalConfigComponent)
|
|
43376
43803
|
},
|
|
43377
43804
|
{
|
|
43378
43805
|
path: 'db-settings',
|
|
43379
|
-
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-
|
|
43806
|
+
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-7YXahcx6.mjs').then(m => m.DbSettingsComponent)
|
|
43380
43807
|
},
|
|
43381
43808
|
{
|
|
43382
43809
|
path: 'workflow-consume',
|
|
43383
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-
|
|
43810
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-B60KkHBd.mjs').then(m => m.CoreWorkflowConsumeComponent),
|
|
43384
43811
|
children: [
|
|
43385
43812
|
{
|
|
43386
43813
|
path: ':id',
|
|
43387
43814
|
outlet: "workflowConsume",
|
|
43388
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
43815
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-ClikowUy.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
43389
43816
|
}
|
|
43390
43817
|
]
|
|
43391
43818
|
},
|
|
43392
43819
|
{
|
|
43393
43820
|
path: 'workflow-consume/:id',
|
|
43394
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
43821
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-ClikowUy.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
43395
43822
|
},
|
|
43396
43823
|
{
|
|
43397
43824
|
path: 'workflow-group-edit/:id',
|
|
@@ -43401,21 +43828,21 @@ const coreWorkflowRoutes = [
|
|
|
43401
43828
|
},
|
|
43402
43829
|
{
|
|
43403
43830
|
path: 'design/:id',
|
|
43404
|
-
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-
|
|
43831
|
+
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-g5HQJs3l.mjs').then(m => m.wfDesignWrapperRoutes),
|
|
43405
43832
|
},
|
|
43406
43833
|
]
|
|
43407
43834
|
},
|
|
43408
43835
|
{
|
|
43409
43836
|
path: 'react/:id',
|
|
43410
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-
|
|
43837
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-BwozfTka.mjs').then(m => m.WfInstanceStepReactComponent)
|
|
43411
43838
|
},
|
|
43412
43839
|
{
|
|
43413
43840
|
path: 'status/:id',
|
|
43414
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-
|
|
43841
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-inD8KWzd.mjs').then(m => m.WfInstanceStatusComponent)
|
|
43415
43842
|
},
|
|
43416
43843
|
{
|
|
43417
43844
|
path: 'lab',
|
|
43418
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-lab.component-
|
|
43845
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-lab.component-Ifhq99S9.mjs').then(m => m.WfLabComponent)
|
|
43419
43846
|
}
|
|
43420
43847
|
];
|
|
43421
43848
|
|
|
@@ -46023,5 +46450,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
46023
46450
|
* Generated bundle index. Do not edit.
|
|
46024
46451
|
*/
|
|
46025
46452
|
|
|
46026
|
-
export { noneAutoClosedAlertOptions as $, AppService as A, BaseComponent as B, ChatService as C, DragReorderDirective as D, EnumFormBaseContolType as E, FullscreenModalLoaderComponent as F, DomService as G, EnumActorSourceType as H, ImageErrorResolverDirective as I, CoreParamControlComponent as J, CoreRadioGroupComponent as K, GptService as L, MultiLanguageService as M, CoreRuleTreeService as N, CoreRuleTreeComponent as O, CoreStickerCollectionComponent as P, ApplicationHelpService as Q, HotKeysDirective as R, StringHtmlPipe as S, TooltipDirective as T, CoreDatetimeService as U, EnumCorePageEditMode as V, CoreFormComponent as W, NavigatorService as X, JsonService as Y, EnumCoreButtonVNSCode as Z, READONLY_WORKFLOW_FIELDS as _, AppConfigService as a, CheckForUpdateService as a$, CoreButtonGroupVnsComponent as a0, CoreDropdownComponent as a1, EnumFilterOperator as a2, CoreDomDecisionEditorComponent as a3, HtmlTooltipDirective 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, TableCellPipe as u, MapAvatarToServerPipe as v, alertOptions as w, SocketService as x, CoreFormDesignService as y, EnumWorkflowStepType as z };
|
|
46027
|
-
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-
|
|
46453
|
+
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 };
|
|
46454
|
+
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-Ch_L3NjN.mjs.map
|