ngx-histaff-alpha 6.7.8 → 6.7.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-DHsa8xdU.mjs → ngx-histaff-alpha-ai-hint-for-table.component-CMSR6Hvl.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-DHsa8xdU.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-CMSR6Hvl.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-DUaLLOby.mjs → ngx-histaff-alpha-core-form-design.component-BNIDGKDm.mjs} +4 -4
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-DUaLLOby.mjs.map → ngx-histaff-alpha-core-form-design.component-BNIDGKDm.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-BSbDclen.mjs → ngx-histaff-alpha-core-sys-action.component-D5zxtvyP.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-BSbDclen.mjs.map → ngx-histaff-alpha-core-sys-action.component-D5zxtvyP.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-C4-e6HAY.mjs → ngx-histaff-alpha-core-template-editor.component-BR0ZVik4.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-C4-e6HAY.mjs.map → ngx-histaff-alpha-core-template-editor.component-BR0ZVik4.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-ChM_IIXE.mjs → ngx-histaff-alpha-core-toast-loading.component-Czqtepd8.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-ChM_IIXE.mjs.map → ngx-histaff-alpha-core-toast-loading.component-Czqtepd8.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-WIWBCvGn.mjs → ngx-histaff-alpha-core-workflow-consume.component-B0x1MLQX.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-WIWBCvGn.mjs.map → ngx-histaff-alpha-core-workflow-consume.component-B0x1MLQX.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-1hiYGimD.mjs → ngx-histaff-alpha-db-settings.component-CCQLmJTw.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-1hiYGimD.mjs.map → ngx-histaff-alpha-db-settings.component-CCQLmJTw.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-CRXwK5mO.mjs → ngx-histaff-alpha-design-wrapper.component-Dluwu00K.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-CRXwK5mO.mjs.map → ngx-histaff-alpha-design-wrapper.component-Dluwu00K.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-Dw1u5JR1.mjs → ngx-histaff-alpha-design-wrapper.route-CTnWCpVz.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-Dw1u5JR1.mjs.map → ngx-histaff-alpha-design-wrapper.route-CTnWCpVz.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-FNOzbUo_.mjs → ngx-histaff-alpha-hrm-schema.component-B4vDuuXE.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-FNOzbUo_.mjs.map → ngx-histaff-alpha-hrm-schema.component-B4vDuuXE.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-live-form.component-Cl5qbsPy.mjs → ngx-histaff-alpha-live-form.component-losMBBZ9.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-live-form.component-Cl5qbsPy.mjs.map → ngx-histaff-alpha-live-form.component-losMBBZ9.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-CMf5E5yd.mjs → ngx-histaff-alpha-ngx-histaff-alpha-DTx4Tmxu.mjs} +213 -80
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-DTx4Tmxu.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-DNXB3MkY.mjs → ngx-histaff-alpha-simple-chat.component-Bcx7iKbD.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-DNXB3MkY.mjs.map → ngx-histaff-alpha-simple-chat.component-Bcx7iKbD.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client-edit.component-Bdk9FxRM.mjs → ngx-histaff-alpha-sys-smtp-client-edit.component-1UxoYqvL.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client-edit.component-Bdk9FxRM.mjs.map → ngx-histaff-alpha-sys-smtp-client-edit.component-1UxoYqvL.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client.component-Cgk2GPJs.mjs → ngx-histaff-alpha-sys-smtp-client.component-DTc9NmGX.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-sys-smtp-client.component-Cgk2GPJs.mjs.map → ngx-histaff-alpha-sys-smtp-client.component-DTc9NmGX.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-template-list.component-BWd3Z9Ci.mjs → ngx-histaff-alpha-template-list.component-DeIk9yaX.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-template-list.component-BWd3Z9Ci.mjs.map → ngx-histaff-alpha-template-list.component-DeIk9yaX.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-Bm8WljGL.mjs → ngx-histaff-alpha-tracker-studio.component-D2fXht9F.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-Bm8WljGL.mjs.map → ngx-histaff-alpha-tracker-studio.component-D2fXht9F.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-CQhIM39W.mjs → ngx-histaff-alpha-wf-form-assign.component-autPwDhJ.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-CQhIM39W.mjs.map → ngx-histaff-alpha-wf-form-assign.component-autPwDhJ.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-DpMVfjpK.mjs → ngx-histaff-alpha-wf-global-config.component-EfTrufWt.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-DpMVfjpK.mjs.map → ngx-histaff-alpha-wf-global-config.component-EfTrufWt.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-Dpd_4Hmw.mjs → ngx-histaff-alpha-wf-instance-status.component-CqTg9wOl.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-Dpd_4Hmw.mjs.map → ngx-histaff-alpha-wf-instance-status.component-CqTg9wOl.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-DrhSJX5e.mjs → ngx-histaff-alpha-wf-instance-step-react.component-B51fXgjI.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-DrhSJX5e.mjs.map → ngx-histaff-alpha-wf-instance-step-react.component-B51fXgjI.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-lab.component-CeBrXSSf.mjs → ngx-histaff-alpha-wf-lab.component-56r-UN3Q.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-lab.component-CeBrXSSf.mjs.map → ngx-histaff-alpha-wf-lab.component-56r-UN3Q.mjs.map} +1 -1
- package/fesm2022/ngx-histaff-alpha.mjs +1 -1
- package/lib/app/libraries/core-dom-decision-editor/core-dom-decision-editor.component.d.ts +2 -1
- package/lib/app/libraries/core-dom-decision-editor/dom-decision-context.service.d.ts +17 -1
- package/lib/app/libraries/core-dom-decision-editor/enum-interfaces/intent-descriptor.registry.d.ts +2 -0
- package/lib/app/libraries/core-dom-decision-editor/enum-interfaces/intent-draft.model.d.ts +1 -1
- package/lib/app/libraries/core-dom-decision-editor/enum-interfaces/intent-input-mode.d.ts +1 -0
- package/lib/app/libraries/core-dom-decision-editor/enum-interfaces/omega-intent.d.ts +4 -2
- package/lib/app/libraries/core-dom-decision-editor/enum-interfaces/omega-projection.vm.d.ts +7 -0
- package/lib/app/libraries/core-dom-decision-editor/intent-composer/input-groups/_base/intent-input-context.d.ts +11 -2
- package/lib/app/libraries/core-dom-decision-editor/intent-composer/input-groups/base-intent-inputs/base-intent-inputs.component.d.ts +1 -2
- package/lib/app/libraries/core-dom-decision-editor/intent-composer/intent-composer.component.d.ts +5 -3
- package/lib/app/libraries/core-table/core-table.component.d.ts +1 -1
- package/package.json +2 -2
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-CMf5E5yd.mjs.map +0 -1
- package/lib/app/libraries/core-dom-decision-editor/enum-interfaces/registries/DECLARE_SNAPSHOT.d.ts +0 -2
|
@@ -9599,31 +9599,26 @@ class SocketService {
|
|
|
9599
9599
|
console.warn("No user logged in");
|
|
9600
9600
|
return;
|
|
9601
9601
|
}
|
|
9602
|
-
// const connection: HubConnection = new HubConnectionBuilder()
|
|
9603
|
-
// .withUrl(this.appConfigService.BASE_URL + '/hubs/signal', {
|
|
9604
|
-
// accessTokenFactory: () => token,
|
|
9605
|
-
// transport: this.appConfigService.BASE_URL?.includes('localhost')
|
|
9606
|
-
// ? undefined
|
|
9607
|
-
// : HttpTransportType.WebSockets | HttpTransportType.ServerSentEvents | HttpTransportType.LongPolling
|
|
9608
|
-
// })
|
|
9609
|
-
// .configureLogging(LogLevel/~*.None~*/.Information) // experimental
|
|
9610
|
-
// .build()
|
|
9611
|
-
// const connection: HubConnection = new HubConnectionBuilder()
|
|
9612
|
-
// .withUrl(this.appConfigService.BASE_URL + '/hubs/signal', {
|
|
9613
|
-
// accessTokenFactory: () => token,
|
|
9614
|
-
// skipNegotiation: !(this.appConfigService.BASE_URL?.includes('localhost')),
|
|
9615
|
-
// transport: this.appConfigService.BASE_URL?.includes('localhost')
|
|
9616
|
-
// ? undefined
|
|
9617
|
-
// : HttpTransportType.WebSockets
|
|
9618
|
-
// })
|
|
9619
|
-
// .configureLogging(LogLevel.Information)
|
|
9620
|
-
// .build()
|
|
9621
9602
|
// Connects with skipNegotiation: true, forcing pure WebSockets and sending a JWT token on connect.
|
|
9603
|
+
// IMPORTANT:
|
|
9604
|
+
// Do NOT use skipNegotiation when connecting through Nginx/Ocelot.
|
|
9605
|
+
// SignalR requires negotiate step to work correctly behind proxies.
|
|
9622
9606
|
const connection = new HubConnectionBuilder()
|
|
9623
9607
|
.withUrl(this.appConfigService.BASE_URL + '/hubs/signal', {
|
|
9624
9608
|
accessTokenFactory: () => token,
|
|
9625
|
-
skipNegotiation: true,
|
|
9626
|
-
transport: HttpTransportType.WebSockets
|
|
9609
|
+
// skipNegotiation: true,
|
|
9610
|
+
transport: HttpTransportType.WebSockets | HttpTransportType.ServerSentEvents | HttpTransportType.LongPolling
|
|
9611
|
+
})
|
|
9612
|
+
.withAutomaticReconnect({
|
|
9613
|
+
nextRetryDelayInMilliseconds: ctx => {
|
|
9614
|
+
if (ctx.previousRetryCount === 0)
|
|
9615
|
+
return 1000;
|
|
9616
|
+
if (ctx.previousRetryCount === 1)
|
|
9617
|
+
return 2000;
|
|
9618
|
+
if (ctx.previousRetryCount === 2)
|
|
9619
|
+
return 5000;
|
|
9620
|
+
return 10000;
|
|
9621
|
+
}
|
|
9627
9622
|
})
|
|
9628
9623
|
.configureLogging(LogLevel.Information)
|
|
9629
9624
|
.build();
|
|
@@ -28769,6 +28764,9 @@ const INTENT_DESCRIPTOR_REGISTRY = [
|
|
|
28769
28764
|
* ========================= */
|
|
28770
28765
|
//DECLARE_SNAPSHOT
|
|
28771
28766
|
];
|
|
28767
|
+
function getIntentDescriptor(actionCode) {
|
|
28768
|
+
return INTENT_DESCRIPTOR_REGISTRY.find(d => d.actionCode === actionCode) ?? null;
|
|
28769
|
+
}
|
|
28772
28770
|
|
|
28773
28771
|
class CoreTimezoneComponent extends CoreFormControlBaseComponent {
|
|
28774
28772
|
constructor() {
|
|
@@ -29015,10 +29013,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
29015
29013
|
|
|
29016
29014
|
class DomDecisionContextService {
|
|
29017
29015
|
constructor() {
|
|
29016
|
+
this.fb = inject(FormBuilder);
|
|
29017
|
+
this.form = this.fb.group({});
|
|
29018
|
+
this.$formRawValue = signal(null);
|
|
29018
29019
|
// Omega được cấp từ Editor
|
|
29019
29020
|
this.$omega = signal(null);
|
|
29020
29021
|
this.$selectedIntentDescriptor = signal(null);
|
|
29021
|
-
this.$activeSeq = signal(null);
|
|
29022
|
+
this.$activeSeq = signal(null); // null = create mode
|
|
29023
|
+
this.$nextSeq = computed(() => (this.$omega()?.inputChain?.length ?? 0) + 1);
|
|
29024
|
+
this.$rehydrateSnapshot = signal(null);
|
|
29025
|
+
this.$isLastSeq = computed(() => {
|
|
29026
|
+
const activeSeq = this.$activeSeq();
|
|
29027
|
+
const chainLength = this.$omega()?.inputChain?.length ?? 0;
|
|
29028
|
+
if (activeSeq === null)
|
|
29029
|
+
return false; // ⛔ create ≠ last
|
|
29030
|
+
return activeSeq === chainLength;
|
|
29031
|
+
});
|
|
29022
29032
|
/**
|
|
29023
29033
|
* $allTokens
|
|
29024
29034
|
* ----------------------------------------
|
|
@@ -29087,6 +29097,65 @@ class DomDecisionContextService {
|
|
|
29087
29097
|
return tokens.filter(t => t.producedBySeq < activeSeq);
|
|
29088
29098
|
});
|
|
29089
29099
|
}
|
|
29100
|
+
buildForm(descriptor) {
|
|
29101
|
+
const controls = {};
|
|
29102
|
+
const snapshot = this.$rehydrateSnapshot();
|
|
29103
|
+
// Logical inputs
|
|
29104
|
+
for (const input of descriptor.inputs) {
|
|
29105
|
+
const value = snapshot?.[input.key]
|
|
29106
|
+
?? input.defaultValueFactory?.()
|
|
29107
|
+
?? input.defaultValue
|
|
29108
|
+
?? null;
|
|
29109
|
+
const control = new FormControl(value, this.buildValidators(input.validators));
|
|
29110
|
+
if (input.disabled) {
|
|
29111
|
+
controls[input.key].disable({ emitEvent: false });
|
|
29112
|
+
}
|
|
29113
|
+
controls[input.key] = control;
|
|
29114
|
+
}
|
|
29115
|
+
// ⚠️ atomic replace
|
|
29116
|
+
this.form = new FormGroup(controls);
|
|
29117
|
+
// 🔹 snapshot ban đầu
|
|
29118
|
+
this.$formRawValue.set(this.form.getRawValue());
|
|
29119
|
+
if (this.intentInputMode() === 'view-only') {
|
|
29120
|
+
this.form.disable({ emitEvent: false });
|
|
29121
|
+
}
|
|
29122
|
+
this.bindFormValueChanges();
|
|
29123
|
+
}
|
|
29124
|
+
buildValidators(schema) {
|
|
29125
|
+
if (!schema)
|
|
29126
|
+
return [];
|
|
29127
|
+
const validators = [];
|
|
29128
|
+
if (schema.required) {
|
|
29129
|
+
validators.push(Validators.required);
|
|
29130
|
+
}
|
|
29131
|
+
if (schema.minLength !== undefined) {
|
|
29132
|
+
validators.push(Validators.minLength(schema.minLength));
|
|
29133
|
+
}
|
|
29134
|
+
if (schema.maxLength !== undefined) {
|
|
29135
|
+
validators.push(Validators.maxLength(schema.maxLength));
|
|
29136
|
+
}
|
|
29137
|
+
if (schema.min !== undefined) {
|
|
29138
|
+
validators.push(Validators.min(schema.min));
|
|
29139
|
+
}
|
|
29140
|
+
if (schema.max !== undefined) {
|
|
29141
|
+
validators.push(Validators.max(schema.max));
|
|
29142
|
+
}
|
|
29143
|
+
if (schema.pattern) {
|
|
29144
|
+
validators.push(Validators.pattern(schema.pattern));
|
|
29145
|
+
}
|
|
29146
|
+
return validators;
|
|
29147
|
+
}
|
|
29148
|
+
bindFormValueChanges() {
|
|
29149
|
+
this.formSubscription?.unsubscribe();
|
|
29150
|
+
this.formSubscription = this.form.valueChanges.subscribe(value => {
|
|
29151
|
+
this.$formRawValue.set(value);
|
|
29152
|
+
});
|
|
29153
|
+
}
|
|
29154
|
+
intentInputMode() {
|
|
29155
|
+
if (!this.$activeSeq())
|
|
29156
|
+
return 'create';
|
|
29157
|
+
return this.$isLastSeq() ? 'edit-last' : 'view-only';
|
|
29158
|
+
}
|
|
29090
29159
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29091
29160
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DomDecisionContextService }); }
|
|
29092
29161
|
}
|
|
@@ -29449,7 +29518,7 @@ class CreateTreeInputsComponent extends BaseIntentInputsComponent {
|
|
|
29449
29518
|
return actionCode === EnumActionCode.CREATE_TREE;
|
|
29450
29519
|
}
|
|
29451
29520
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CreateTreeInputsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
29452
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CreateTreeInputsComponent, isStandalone: true, selector: "create-tree-inputs", usesInheritance: true, ngImport: i0, template: "@if ($context().form) {\r\n<div [formGroup]=\"$context().form\">\r\n@if ($context()?.descriptor?.inputs?.length) {\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 class=\"intent-cell\" [class.hidden]=\"input.hidden\" [style.gridColumn]=\"'span ' + (input.flexSize ?? 1)\">\r\n\r\n <div class=\"intent-input\">\r\n\r\n <label [class.required]=\"input.validators?.required\">\r\n {{ input.label }}\r\n\r\n @if (input.hint && input.hint !== '') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"input.hint!\" [showAnyway]=\"true\"\r\n [style.display]=\"'inline-block'\" [style.marginLeft]=\"'2px'\"></i>\r\n }\r\n </label>\r\n\r\n @switch (input.kind) {\r\n\r\n @case ('string') {\r\n <input class=\"form-control\" [formControlName]=\"input.key\" type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" />\r\n }\r\n\r\n @case ('boolean') {\r\n <core-ios-switcher\r\n [formControlName]=\"input.key\"\r\n [showOnOffText]=\"false\"\r\n [width]=\"66\" />\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 @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\r\n @if (!getErrorsOfField(input.key).length && isTouched(input.key)) {\r\n <div> </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n }\r\n</div>\r\n}\r\n}\r\n</div>\r\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
29521
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CreateTreeInputsComponent, isStandalone: true, selector: "create-tree-inputs", usesInheritance: true, ngImport: i0, template: "@if ($context().form) {\r\n<div [formGroup]=\"$context().form\">\r\n@if ($context()?.descriptor?.inputs?.length) {\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 class=\"intent-cell\" [class.hidden]=\"input.hidden\" [style.gridColumn]=\"'span ' + (input.flexSize ?? 1)\">\r\n\r\n <div class=\"intent-input\">\r\n\r\n <label [class.required]=\"input.validators?.required\">\r\n {{ input.label }}\r\n\r\n @if (input.hint && input.hint !== '') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"input.hint!\" [showAnyway]=\"true\"\r\n [style.display]=\"'inline-block'\" [style.marginLeft]=\"'2px'\"></i>\r\n }\r\n </label>\r\n\r\n @switch (input.kind) {\r\n\r\n @case ('string') {\r\n <input class=\"form-control\" [formControlName]=\"input.key\" type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" />\r\n }\r\n\r\n @case ('boolean') {\r\n <core-ios-switcher\r\n [formControlName]=\"input.key\"\r\n [showOnOffText]=\"false\"\r\n [width]=\"66\" />\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 @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\r\n @if (!getErrorsOfField(input.key).length && isTouched(input.key)) {\r\n <div> </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n }\r\n</div>\r\n}\r\n}\r\n</div>\r\n}\r\n\r\n<p>Mode: {{ $context().mode }}</p>\r\n<p>Active Seq: {{ $context().activeSeq }}</p>\r\n<p>Is Last Seq: {{ $context().isLastSeq }}</p>", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
29453
29522
|
}
|
|
29454
29523
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CreateTreeInputsComponent, decorators: [{
|
|
29455
29524
|
type: Component,
|
|
@@ -29457,7 +29526,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
29457
29526
|
ReactiveFormsModule,
|
|
29458
29527
|
CoreIosSwitcherComponent,
|
|
29459
29528
|
TranslatePipe,
|
|
29460
|
-
], template: "@if ($context().form) {\r\n<div [formGroup]=\"$context().form\">\r\n@if ($context()?.descriptor?.inputs?.length) {\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 class=\"intent-cell\" [class.hidden]=\"input.hidden\" [style.gridColumn]=\"'span ' + (input.flexSize ?? 1)\">\r\n\r\n <div class=\"intent-input\">\r\n\r\n <label [class.required]=\"input.validators?.required\">\r\n {{ input.label }}\r\n\r\n @if (input.hint && input.hint !== '') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"input.hint!\" [showAnyway]=\"true\"\r\n [style.display]=\"'inline-block'\" [style.marginLeft]=\"'2px'\"></i>\r\n }\r\n </label>\r\n\r\n @switch (input.kind) {\r\n\r\n @case ('string') {\r\n <input class=\"form-control\" [formControlName]=\"input.key\" type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" />\r\n }\r\n\r\n @case ('boolean') {\r\n <core-ios-switcher\r\n [formControlName]=\"input.key\"\r\n [showOnOffText]=\"false\"\r\n [width]=\"66\" />\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 @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\r\n @if (!getErrorsOfField(input.key).length && isTouched(input.key)) {\r\n <div> </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n }\r\n</div>\r\n}\r\n}\r\n</div>\r\n}" }]
|
|
29529
|
+
], template: "@if ($context().form) {\r\n<div [formGroup]=\"$context().form\">\r\n@if ($context()?.descriptor?.inputs?.length) {\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 class=\"intent-cell\" [class.hidden]=\"input.hidden\" [style.gridColumn]=\"'span ' + (input.flexSize ?? 1)\">\r\n\r\n <div class=\"intent-input\">\r\n\r\n <label [class.required]=\"input.validators?.required\">\r\n {{ input.label }}\r\n\r\n @if (input.hint && input.hint !== '') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"input.hint!\" [showAnyway]=\"true\"\r\n [style.display]=\"'inline-block'\" [style.marginLeft]=\"'2px'\"></i>\r\n }\r\n </label>\r\n\r\n @switch (input.kind) {\r\n\r\n @case ('string') {\r\n <input class=\"form-control\" [formControlName]=\"input.key\" type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" />\r\n }\r\n\r\n @case ('boolean') {\r\n <core-ios-switcher\r\n [formControlName]=\"input.key\"\r\n [showOnOffText]=\"false\"\r\n [width]=\"66\" />\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 @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\r\n @if (!getErrorsOfField(input.key).length && isTouched(input.key)) {\r\n <div> </div>\r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n }\r\n</div>\r\n}\r\n}\r\n</div>\r\n}\r\n\r\n<p>Mode: {{ $context().mode }}</p>\r\n<p>Active Seq: {{ $context().activeSeq }}</p>\r\n<p>Is Last Seq: {{ $context().isLastSeq }}</p>" }]
|
|
29461
29530
|
}] });
|
|
29462
29531
|
|
|
29463
29532
|
class CreateOInputsComponent extends BaseIntentInputsComponent {
|
|
@@ -29493,7 +29562,7 @@ class CreateOInputsComponent extends BaseIntentInputsComponent {
|
|
|
29493
29562
|
});
|
|
29494
29563
|
}
|
|
29495
29564
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CreateOInputsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
29496
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CreateOInputsComponent, isStandalone: true, selector: "create-o-inputs", usesInheritance: true, ngImport: i0, template: "@if ($context().form) {\r\n<div [formGroup]=\"$context().form\">\r\n@if ($context()?.descriptor?.inputs?.length) {\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 class=\"intent-cell\" [class.hidden]=\"input.hidden\" [style.gridColumn]=\"'span ' + (input.flexSize ?? 1)\">\r\n\r\n <div class=\"intent-input\">\r\n\r\n <label [class.required]=\"input.validators?.required\">\r\n {{ input.label }}\r\n\r\n @if (input.hint && input.hint !== '') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"input.hint!\" [showAnyway]=\"true\"\r\n [style.display]=\"'inline-block'\" [style.marginLeft]=\"'2px'\"></i>\r\n }\r\n </label>\r\n\r\n @switch (input.kind) {\r\n\r\n @case ('string') {\r\n <input class=\"form-control\" [formControlName]=\"input.key\" type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" />\r\n }\r\n\r\n @case ('treeId') {\r\n <core-dropdown [options$]=\"treeIdOptions$\" [warningDisable]=\"true\" [formControlName]=\"input.key\" />\r\n }\r\n\r\n @case ('date') {\r\n <core-date-picker [formControlName]=\"input.key\" [$rangePoint]=\"'start'\"\r\n [required]=\"!!input.validators?.required\" />\r\n }\r\n\r\n @case ('timezoneId') {\r\n <core-timezone [formControlName]=\"input.key\" />\r\n }\r\n\r\n @case ('boolean') {\r\n <core-ios-switcher [formControlName]=\"input.key\" [showOnOffText]=\"false\" [width]=\"66\" />\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 @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 && isTouched(input.key)) {\r\n <div> </div>\r\n }\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}", styles: [""], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.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", "$disabled"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }, { kind: "component", type: CoreTimezoneComponent, selector: "core-timezone" }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }] }); }
|
|
29565
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CreateOInputsComponent, isStandalone: true, selector: "create-o-inputs", usesInheritance: true, ngImport: i0, template: "@if ($context().form) {\r\n<div [formGroup]=\"$context().form\">\r\n@if ($context()?.descriptor?.inputs?.length) {\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 class=\"intent-cell\" [class.hidden]=\"input.hidden\" [style.gridColumn]=\"'span ' + (input.flexSize ?? 1)\">\r\n\r\n <div class=\"intent-input\">\r\n\r\n <label [class.required]=\"input.validators?.required\">\r\n {{ input.label }}\r\n\r\n @if (input.hint && input.hint !== '') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"input.hint!\" [showAnyway]=\"true\"\r\n [style.display]=\"'inline-block'\" [style.marginLeft]=\"'2px'\"></i>\r\n }\r\n </label>\r\n\r\n @switch (input.kind) {\r\n\r\n @case ('string') {\r\n <input class=\"form-control\" [formControlName]=\"input.key\" type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" />\r\n }\r\n\r\n @case ('treeId') {\r\n <core-dropdown [options$]=\"treeIdOptions$\" [warningDisable]=\"true\" [formControlName]=\"input.key\" />\r\n }\r\n\r\n @case ('date') {\r\n <core-date-picker [formControlName]=\"input.key\" [$rangePoint]=\"'start'\"\r\n [required]=\"!!input.validators?.required\" />\r\n }\r\n\r\n @case ('timezoneId') {\r\n <core-timezone [formControlName]=\"input.key\" />\r\n }\r\n\r\n @case ('boolean') {\r\n <core-ios-switcher [formControlName]=\"input.key\" [showOnOffText]=\"false\" [width]=\"66\" />\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 @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 && isTouched(input.key)) {\r\n <div> </div>\r\n }\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\r\n<p>Mode: {{ $context().mode }}</p>\r\n<p>Active Seq: {{ $context().activeSeq }}</p>\r\n<p>Is Last Seq: {{ $context().isLastSeq }}</p>", styles: [""], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.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", "$disabled"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled", "$rangePoint"] }, { kind: "component", type: CoreTimezoneComponent, selector: "core-timezone" }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }] }); }
|
|
29497
29566
|
}
|
|
29498
29567
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CreateOInputsComponent, decorators: [{
|
|
29499
29568
|
type: Component,
|
|
@@ -29504,7 +29573,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
29504
29573
|
CoreDatePickerComponent,
|
|
29505
29574
|
CoreTimezoneComponent,
|
|
29506
29575
|
CoreIosSwitcherComponent,
|
|
29507
|
-
], template: "@if ($context().form) {\r\n<div [formGroup]=\"$context().form\">\r\n@if ($context()?.descriptor?.inputs?.length) {\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 class=\"intent-cell\" [class.hidden]=\"input.hidden\" [style.gridColumn]=\"'span ' + (input.flexSize ?? 1)\">\r\n\r\n <div class=\"intent-input\">\r\n\r\n <label [class.required]=\"input.validators?.required\">\r\n {{ input.label }}\r\n\r\n @if (input.hint && input.hint !== '') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"input.hint!\" [showAnyway]=\"true\"\r\n [style.display]=\"'inline-block'\" [style.marginLeft]=\"'2px'\"></i>\r\n }\r\n </label>\r\n\r\n @switch (input.kind) {\r\n\r\n @case ('string') {\r\n <input class=\"form-control\" [formControlName]=\"input.key\" type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" />\r\n }\r\n\r\n @case ('treeId') {\r\n <core-dropdown [options$]=\"treeIdOptions$\" [warningDisable]=\"true\" [formControlName]=\"input.key\" />\r\n }\r\n\r\n @case ('date') {\r\n <core-date-picker [formControlName]=\"input.key\" [$rangePoint]=\"'start'\"\r\n [required]=\"!!input.validators?.required\" />\r\n }\r\n\r\n @case ('timezoneId') {\r\n <core-timezone [formControlName]=\"input.key\" />\r\n }\r\n\r\n @case ('boolean') {\r\n <core-ios-switcher [formControlName]=\"input.key\" [showOnOffText]=\"false\" [width]=\"66\" />\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 @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 && isTouched(input.key)) {\r\n <div> </div>\r\n }\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}" }]
|
|
29576
|
+
], template: "@if ($context().form) {\r\n<div [formGroup]=\"$context().form\">\r\n@if ($context()?.descriptor?.inputs?.length) {\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 class=\"intent-cell\" [class.hidden]=\"input.hidden\" [style.gridColumn]=\"'span ' + (input.flexSize ?? 1)\">\r\n\r\n <div class=\"intent-input\">\r\n\r\n <label [class.required]=\"input.validators?.required\">\r\n {{ input.label }}\r\n\r\n @if (input.hint && input.hint !== '') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"input.hint!\" [showAnyway]=\"true\"\r\n [style.display]=\"'inline-block'\" [style.marginLeft]=\"'2px'\"></i>\r\n }\r\n </label>\r\n\r\n @switch (input.kind) {\r\n\r\n @case ('string') {\r\n <input class=\"form-control\" [formControlName]=\"input.key\" type=\"text\"\r\n (input)=\"onInputChange(input.key, $event.target.value)\" />\r\n }\r\n\r\n @case ('treeId') {\r\n <core-dropdown [options$]=\"treeIdOptions$\" [warningDisable]=\"true\" [formControlName]=\"input.key\" />\r\n }\r\n\r\n @case ('date') {\r\n <core-date-picker [formControlName]=\"input.key\" [$rangePoint]=\"'start'\"\r\n [required]=\"!!input.validators?.required\" />\r\n }\r\n\r\n @case ('timezoneId') {\r\n <core-timezone [formControlName]=\"input.key\" />\r\n }\r\n\r\n @case ('boolean') {\r\n <core-ios-switcher [formControlName]=\"input.key\" [showOnOffText]=\"false\" [width]=\"66\" />\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 @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 && isTouched(input.key)) {\r\n <div> </div>\r\n }\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\r\n<p>Mode: {{ $context().mode }}</p>\r\n<p>Active Seq: {{ $context().activeSeq }}</p>\r\n<p>Is Last Seq: {{ $context().isLastSeq }}</p>" }]
|
|
29508
29577
|
}] });
|
|
29509
29578
|
|
|
29510
29579
|
class IntentComposerComponent extends BaseComponent {
|
|
@@ -29527,13 +29596,18 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
29527
29596
|
this.as = inject(AlertService);
|
|
29528
29597
|
this.ctx = inject(DomDecisionContextService);
|
|
29529
29598
|
this.applicationHelpService = inject(ApplicationHelpService);
|
|
29530
|
-
this.$
|
|
29531
|
-
this.form = this.
|
|
29599
|
+
this.$allTokens = this.ctx.$allTokens;
|
|
29600
|
+
this.form = this.ctx.form;
|
|
29532
29601
|
this.$formRawValue = signal(null);
|
|
29533
29602
|
this.isDevMode = isDevMode();
|
|
29534
29603
|
this.$context = computed(() => ({
|
|
29535
29604
|
form: this.form,
|
|
29536
29605
|
descriptor: this.$descriptor(),
|
|
29606
|
+
currentTokens: this.ctx.$currentTokens(),
|
|
29607
|
+
mode: this.ctx.intentInputMode(),
|
|
29608
|
+
activeSeq: this.ctx.$activeSeq(),
|
|
29609
|
+
isLastSeq: this.ctx.$isLastSeq(),
|
|
29610
|
+
inputSnapshot: this.ctx.$rehydrateSnapshot()
|
|
29537
29611
|
}));
|
|
29538
29612
|
this.rCodeOptions$ = new BehaviorSubject(RCODE_FORWARD_VALUES.map(x => ({ value: x, text: x })));
|
|
29539
29613
|
this.roleOptions$ = new BehaviorSubject([
|
|
@@ -29575,11 +29649,14 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
29575
29649
|
// ===== Methods =====
|
|
29576
29650
|
buildForm(descriptor) {
|
|
29577
29651
|
const controls = {};
|
|
29652
|
+
const snapshot = this.ctx.$rehydrateSnapshot();
|
|
29578
29653
|
// Logical inputs
|
|
29579
29654
|
for (const input of descriptor.inputs) {
|
|
29580
|
-
const
|
|
29581
|
-
|
|
29582
|
-
|
|
29655
|
+
const value = snapshot?.[input.key]
|
|
29656
|
+
?? input.defaultValueFactory?.()
|
|
29657
|
+
?? input.defaultValue
|
|
29658
|
+
?? null;
|
|
29659
|
+
const control = new FormControl(value, this.buildValidators(input.validators));
|
|
29583
29660
|
if (input.disabled) {
|
|
29584
29661
|
controls[input.key].disable({ emitEvent: false });
|
|
29585
29662
|
}
|
|
@@ -29589,6 +29666,9 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
29589
29666
|
this.form = new FormGroup(controls);
|
|
29590
29667
|
// 🔹 snapshot ban đầu
|
|
29591
29668
|
this.$formRawValue.set(this.form.getRawValue());
|
|
29669
|
+
if (this.ctx.intentInputMode() === 'view-only') {
|
|
29670
|
+
this.form.disable({ emitEvent: false });
|
|
29671
|
+
}
|
|
29592
29672
|
this.bindFormValueChanges();
|
|
29593
29673
|
// TO DO: REMOVE THE REST
|
|
29594
29674
|
if (this.vfUtcSubscription)
|
|
@@ -29642,12 +29722,12 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
29642
29722
|
onConfirm() {
|
|
29643
29723
|
this.form.markAllAsTouched();
|
|
29644
29724
|
this.rebuildErrors();
|
|
29645
|
-
if (this.$errors().length > 0)
|
|
29725
|
+
if (this.$errors().length > 0)
|
|
29646
29726
|
return;
|
|
29647
|
-
|
|
29727
|
+
const snapshot = this.form.getRawValue();
|
|
29648
29728
|
this.intentComposed.emit({
|
|
29649
29729
|
actionCode: this.$descriptor().actionCode,
|
|
29650
|
-
|
|
29730
|
+
inputSnapshot: snapshot
|
|
29651
29731
|
});
|
|
29652
29732
|
this.ctx.$selectedIntentDescriptor.set(null);
|
|
29653
29733
|
}
|
|
@@ -29771,7 +29851,7 @@ class IntentComposerComponent extends BaseComponent {
|
|
|
29771
29851
|
this.vfUtcSubscription.unsubscribe();
|
|
29772
29852
|
}
|
|
29773
29853
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IntentComposerComponent, deps: [{ token: MultiLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29774
|
-
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" }, host: { listeners: { "keydown.escape": "onEscape($event)" } }, 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 class=\"intent-composer-container\" [formGroup]=\"form\" (ngSubmit)=\"onConfirm()\" autocomplete=\"off\" [hotKeys]=\"hotKeys\">\r\n\r\n <!-- Header -->\r\n <div class=\"composer-header\">\r\n <core-page-header [hideButtonGroup]=\"true\" [title]=\"$descriptor().label\" />\r\n <div class=\"icon-wrapper\" (click)=\"cancelled.emit()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"composer-body\">\r\n\r\n <p class=\"desc\">{{ $descriptor().quickEmoji }} | {{ $descriptor().description }}</p>\r\n\r\n <!-- Inputs -->\r\n <div class=\"intent-inputs\">\r\n @switch ($descriptor().actionCode) {\r\n @case ('CREATE_TREE') {\r\n <create-tree-inputs [$context]=\"$context()\" />\r\n }\r\n @case ('CREATE_O') {\r\n <create-o-inputs [$context]=\"$context()\" />\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 </div>\r\n\r\n <!-- Actions -->\r\n <div class=\"composer-actions\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"onCancel()\">\r\n Quay l\u1EA1i\r\n </button>\r\n\r\n <button type=\"submit\" class=\"btn btn-primary\">\r\n X\u00E1c nh\u1EADn\r\n </button>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- @if (isDevMode && $formRawValue) {\r\n <pre>{{ $formRawValue() | json }}</pre>\r\n }\r\n\r\n @if (isDevMode) {\r\n <label>Tokens</label>\r\n <pre>{{ $
|
|
29854
|
+
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" }, host: { listeners: { "keydown.escape": "onEscape($event)" } }, 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 class=\"intent-composer-container\" [formGroup]=\"form\" (ngSubmit)=\"onConfirm()\" autocomplete=\"off\" [hotKeys]=\"hotKeys\">\r\n\r\n <!-- Header -->\r\n <div class=\"composer-header\">\r\n <core-page-header [hideButtonGroup]=\"true\" [title]=\"$descriptor().label\" />\r\n <div class=\"icon-wrapper\" (click)=\"cancelled.emit()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"composer-body\">\r\n\r\n <p class=\"desc\">{{ $descriptor().quickEmoji }} | {{ $descriptor().description }}</p>\r\n\r\n <!-- Inputs -->\r\n <div class=\"intent-inputs\">\r\n @switch ($descriptor().actionCode) {\r\n @case ('CREATE_TREE') {\r\n <create-tree-inputs [$context]=\"$context()\" />\r\n }\r\n @case ('CREATE_O') {\r\n <create-o-inputs [$context]=\"$context()\" />\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 </div>\r\n\r\n <!-- Actions -->\r\n <div class=\"composer-actions\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"onCancel()\">\r\n Quay l\u1EA1i\r\n </button>\r\n\r\n <button type=\"submit\" class=\"btn btn-primary\">\r\n X\u00E1c nh\u1EADn\r\n </button>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- @if (isDevMode && $formRawValue) {\r\n <pre>{{ $formRawValue() | json }}</pre>\r\n }\r\n -->\r\n\r\n @if (isDevMode) {\r\n <label>Current Tokens</label>\r\n <pre>{{ $context().currentTokens | json }}</pre>\r\n }\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 .composer-header{position:relative}.intent-composer-container .composer-header .icon-wrapper{cursor:pointer;position:absolute;width:30px;height:30px;top:5px;right:-10px;border-radius:50%;display:flex;align-items:center;justify-content:center}.intent-composer-container .composer-header .icon-wrapper:hover{background-color:#d3d3d3}.intent-composer-container .composer-header .icon-wrapper i{font-size:18px}.intent-composer-container .intent-inputs label{color:#848484}.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}.intent-composer-container .composer-actions button{font-size:13px;border-radius:0}.intent-composer-container pre{margin-top:15px}.test-itemTemplateRef{padding:15px;background-color:#6495ed;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup", "htmlTooltipRef"], outputs: ["buttonClick"] }, { kind: "directive", type: HotKeysDirective, selector: "[hotKeys]", inputs: ["hotKeys"] }, { kind: "component", type: CreateTreeInputsComponent, selector: "create-tree-inputs" }, { kind: "component", type: CreateOInputsComponent, selector: "create-o-inputs" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
29775
29855
|
}
|
|
29776
29856
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IntentComposerComponent, decorators: [{
|
|
29777
29857
|
type: Component,
|
|
@@ -29792,7 +29872,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
29792
29872
|
CreateOInputsComponent,
|
|
29793
29873
|
], encapsulation: ViewEncapsulation.None, host: {
|
|
29794
29874
|
'(keydown.escape)': 'onEscape($event)'
|
|
29795
|
-
}, 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 class=\"intent-composer-container\" [formGroup]=\"form\" (ngSubmit)=\"onConfirm()\" autocomplete=\"off\" [hotKeys]=\"hotKeys\">\r\n\r\n <!-- Header -->\r\n <div class=\"composer-header\">\r\n <core-page-header [hideButtonGroup]=\"true\" [title]=\"$descriptor().label\" />\r\n <div class=\"icon-wrapper\" (click)=\"cancelled.emit()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"composer-body\">\r\n\r\n <p class=\"desc\">{{ $descriptor().quickEmoji }} | {{ $descriptor().description }}</p>\r\n\r\n <!-- Inputs -->\r\n <div class=\"intent-inputs\">\r\n @switch ($descriptor().actionCode) {\r\n @case ('CREATE_TREE') {\r\n <create-tree-inputs [$context]=\"$context()\" />\r\n }\r\n @case ('CREATE_O') {\r\n <create-o-inputs [$context]=\"$context()\" />\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 </div>\r\n\r\n <!-- Actions -->\r\n <div class=\"composer-actions\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"onCancel()\">\r\n Quay l\u1EA1i\r\n </button>\r\n\r\n <button type=\"submit\" class=\"btn btn-primary\">\r\n X\u00E1c nh\u1EADn\r\n </button>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- @if (isDevMode && $formRawValue) {\r\n <pre>{{ $formRawValue() | json }}</pre>\r\n }\r\n\r\n @if (isDevMode) {\r\n <label>Tokens</label>\r\n <pre>{{ $
|
|
29875
|
+
}, 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 class=\"intent-composer-container\" [formGroup]=\"form\" (ngSubmit)=\"onConfirm()\" autocomplete=\"off\" [hotKeys]=\"hotKeys\">\r\n\r\n <!-- Header -->\r\n <div class=\"composer-header\">\r\n <core-page-header [hideButtonGroup]=\"true\" [title]=\"$descriptor().label\" />\r\n <div class=\"icon-wrapper\" (click)=\"cancelled.emit()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"composer-body\">\r\n\r\n <p class=\"desc\">{{ $descriptor().quickEmoji }} | {{ $descriptor().description }}</p>\r\n\r\n <!-- Inputs -->\r\n <div class=\"intent-inputs\">\r\n @switch ($descriptor().actionCode) {\r\n @case ('CREATE_TREE') {\r\n <create-tree-inputs [$context]=\"$context()\" />\r\n }\r\n @case ('CREATE_O') {\r\n <create-o-inputs [$context]=\"$context()\" />\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 </div>\r\n\r\n <!-- Actions -->\r\n <div class=\"composer-actions\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"onCancel()\">\r\n Quay l\u1EA1i\r\n </button>\r\n\r\n <button type=\"submit\" class=\"btn btn-primary\">\r\n X\u00E1c nh\u1EADn\r\n </button>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- @if (isDevMode && $formRawValue) {\r\n <pre>{{ $formRawValue() | json }}</pre>\r\n }\r\n -->\r\n\r\n @if (isDevMode) {\r\n <label>Current Tokens</label>\r\n <pre>{{ $context().currentTokens | json }}</pre>\r\n }\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 .composer-header{position:relative}.intent-composer-container .composer-header .icon-wrapper{cursor:pointer;position:absolute;width:30px;height:30px;top:5px;right:-10px;border-radius:50%;display:flex;align-items:center;justify-content:center}.intent-composer-container .composer-header .icon-wrapper:hover{background-color:#d3d3d3}.intent-composer-container .composer-header .icon-wrapper i{font-size:18px}.intent-composer-container .intent-inputs label{color:#848484}.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}.intent-composer-container .composer-actions button{font-size:13px;border-radius:0}.intent-composer-container pre{margin-top:15px}.test-itemTemplateRef{padding:15px;background-color:#6495ed;color:#fff}\n"] }]
|
|
29796
29876
|
}], ctorParameters: () => [{ type: MultiLanguageService }] });
|
|
29797
29877
|
|
|
29798
29878
|
const CreateOrganizationGrammar = {
|
|
@@ -29995,7 +30075,7 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
29995
30075
|
//this.$projection.set(this.rebuildProjectionFromOmega(this.value));
|
|
29996
30076
|
}
|
|
29997
30077
|
buildNarrationContext(intent) {
|
|
29998
|
-
const facts = intent.
|
|
30078
|
+
const facts = intent.inputSnapshot ?? {};
|
|
29999
30079
|
const temporal = this.buildTemporalContext(facts);
|
|
30000
30080
|
const resolved = this.buildResolvedContext(facts);
|
|
30001
30081
|
return {
|
|
@@ -30144,6 +30224,8 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
30144
30224
|
return {
|
|
30145
30225
|
seq: intent.seq,
|
|
30146
30226
|
actionLabel,
|
|
30227
|
+
actionCode: intent.actionCode,
|
|
30228
|
+
inputSnapshot: this.ctx.$rehydrateSnapshot(),
|
|
30147
30229
|
summary
|
|
30148
30230
|
};
|
|
30149
30231
|
});
|
|
@@ -30158,7 +30240,9 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
30158
30240
|
// This method MUST NOT mutate Omega or projection directly
|
|
30159
30241
|
// Actual intent creation will happen in a dedicated composer (modal / panel)
|
|
30160
30242
|
this.$showIntentComposer.set(true);
|
|
30161
|
-
this.$activeSeq.set(this.$omega().inputChain.length + 1);
|
|
30243
|
+
//this.$activeSeq.set(this.$omega().inputChain.length + 1);
|
|
30244
|
+
// create mode → không active seq cũ nào cả
|
|
30245
|
+
this.$activeSeq.set(null);
|
|
30162
30246
|
}
|
|
30163
30247
|
onCloseIntentComposer() {
|
|
30164
30248
|
this.$showIntentComposer.set(false);
|
|
@@ -30183,41 +30267,90 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
30183
30267
|
};
|
|
30184
30268
|
});
|
|
30185
30269
|
}
|
|
30186
|
-
|
|
30270
|
+
onMenuSelectIntent(descriptor) {
|
|
30187
30271
|
this.$selectedIntentDescriptor.set(descriptor);
|
|
30188
|
-
|
|
30189
|
-
|
|
30190
|
-
|
|
30272
|
+
}
|
|
30273
|
+
onSelectEditedIntent(seq) {
|
|
30274
|
+
const intent = this.$projection().intents.find(x => x.seq === seq);
|
|
30275
|
+
if (!intent)
|
|
30191
30276
|
return;
|
|
30192
|
-
|
|
30193
|
-
|
|
30194
|
-
|
|
30277
|
+
const descriptor = getIntentDescriptor(intent.actionCode);
|
|
30278
|
+
if (!descriptor)
|
|
30279
|
+
return;
|
|
30280
|
+
this.$selectedIntentDescriptor.set(descriptor);
|
|
30281
|
+
this.ctx.$rehydrateSnapshot.set(intent.inputSnapshot);
|
|
30282
|
+
this.$activeSeq.set(seq);
|
|
30283
|
+
this.$showIntentComposer.set(true);
|
|
30195
30284
|
}
|
|
30196
30285
|
onCancelIntentCompose() {
|
|
30197
30286
|
this.$selectedIntentDescriptor.set(null);
|
|
30198
|
-
this.$activeSeq.set(null);
|
|
30199
30287
|
}
|
|
30288
|
+
/*
|
|
30289
|
+
onIntentDrafted(draft: IIntentDraft): void {
|
|
30290
|
+
this.$omega.update(omega => {
|
|
30291
|
+
const nextSeq = this.ctx.$nextSeq();
|
|
30292
|
+
|
|
30293
|
+
const outputs = this.produceOutputs(nextSeq, draft);
|
|
30294
|
+
|
|
30295
|
+
return {
|
|
30296
|
+
...omega,
|
|
30297
|
+
inputChain: [
|
|
30298
|
+
...omega.inputChain,
|
|
30299
|
+
{
|
|
30300
|
+
seq: nextSeq,
|
|
30301
|
+
actionCode: draft.actionCode,
|
|
30302
|
+
input: draft.inputSnapshot,
|
|
30303
|
+
outputs
|
|
30304
|
+
}
|
|
30305
|
+
]
|
|
30306
|
+
};
|
|
30307
|
+
});
|
|
30308
|
+
|
|
30309
|
+
this.$showIntentComposer.set(false);
|
|
30310
|
+
}
|
|
30311
|
+
*/
|
|
30200
30312
|
onIntentDrafted(draft) {
|
|
30201
|
-
this.$omega.update(omega => {
|
|
30202
|
-
const
|
|
30203
|
-
const
|
|
30204
|
-
|
|
30205
|
-
|
|
30206
|
-
|
|
30207
|
-
|
|
30313
|
+
this.$omega.update((omega) => {
|
|
30314
|
+
const activeSeq = this.ctx.$activeSeq();
|
|
30315
|
+
const chain = omega.inputChain;
|
|
30316
|
+
// CREATE
|
|
30317
|
+
if (!activeSeq || activeSeq === chain.length + 1) {
|
|
30318
|
+
const nextSeq = chain.length + 1;
|
|
30319
|
+
const nextChain = [
|
|
30320
|
+
...chain,
|
|
30208
30321
|
{
|
|
30209
30322
|
seq: nextSeq,
|
|
30210
30323
|
actionCode: draft.actionCode,
|
|
30211
|
-
|
|
30212
|
-
outputs
|
|
30324
|
+
inputSnapshot: draft.inputSnapshot,
|
|
30325
|
+
outputs: this.produceOutputs(nextSeq, draft)
|
|
30213
30326
|
}
|
|
30214
|
-
]
|
|
30215
|
-
|
|
30327
|
+
];
|
|
30328
|
+
return {
|
|
30329
|
+
...omega,
|
|
30330
|
+
inputChain: nextChain
|
|
30331
|
+
};
|
|
30332
|
+
}
|
|
30333
|
+
// EDIT LAST
|
|
30334
|
+
if (activeSeq === chain.length) {
|
|
30335
|
+
const nextChain = chain.map(intent => intent.seq === activeSeq
|
|
30336
|
+
? {
|
|
30337
|
+
...intent,
|
|
30338
|
+
inputSnapshot: draft.inputSnapshot,
|
|
30339
|
+
outputs: this.produceOutputs(activeSeq, draft)
|
|
30340
|
+
}
|
|
30341
|
+
: intent);
|
|
30342
|
+
return {
|
|
30343
|
+
...omega,
|
|
30344
|
+
inputChain: nextChain
|
|
30345
|
+
};
|
|
30346
|
+
}
|
|
30347
|
+
return omega;
|
|
30216
30348
|
});
|
|
30217
30349
|
this.$showIntentComposer.set(false);
|
|
30350
|
+
this.ctx.$activeSeq.set(null);
|
|
30218
30351
|
}
|
|
30219
30352
|
produceOutputs(seq, draft) {
|
|
30220
|
-
const input = draft.
|
|
30353
|
+
const input = draft.inputSnapshot;
|
|
30221
30354
|
switch (draft.actionCode) {
|
|
30222
30355
|
case EnumActionCode.CREATE_O: {
|
|
30223
30356
|
const id = input['ID'];
|
|
@@ -30277,7 +30410,7 @@ class CoreDomDecisionEditorComponent extends CoreFormControlBaseComponent {
|
|
|
30277
30410
|
multi: true,
|
|
30278
30411
|
useExisting: forwardRef(() => CoreDomDecisionEditorComponent),
|
|
30279
30412
|
},
|
|
30280
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"core-dom-decision-editor-container\">\r\n\r\n <!-- ========================= -->\r\n <!-- Intent Chain Projection -->\r\n <!-- ========================= -->\r\n <section class=\"intent-chain\">\r\n\r\n @if ($projection().intents.length > 0) {\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 <div class=\"intent-row\">\r\n <div class=\"intent-header\">\r\n <span class=\"intent-seq\" [appTooltip]=\"intent.actionLabel\" [showAnyway]=\"true\" [position]=\"'above'\">#{{\r\n intent.seq }}</span>\r\n <span class=\"intent-label\">{{ intent.summary }}</span>\r\n </div>\r\n\r\n <div class=\"intent-tool\">\r\n <button type=\"button\" class=\"btn btn-danger-ghost\" (click)=\"onRemoveIntent(intent.seq)\"\r\n [appTooltip]=\"'G\u1EE1'\" [showAnyway]=\"true\" [position]=\"'above'\">\r\n <i class=\"feather-trash\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </li>\r\n }\r\n </ol>\r\n }\r\n\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Add Intent Entry Point -->\r\n <!-- ========================= -->\r\n <section class=\"intent-actions-panel\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"onAddIntent()\">\r\n + Th\u00EAm Intent\r\n </button>\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Output Preview (Derived) -->\r\n <!-- ========================= -->\r\n <section class=\"output-preview\">\r\n @if ($projection().outputs.length > 1) {\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 <!-- @if (isDevMode) {\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 <label>allTokens</label>\r\n <pre>{{ $allTokens() | json }}</pre>\r\n\r\n } -->\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\r\n @if ($selectedIntentDescriptor()) {\r\n\r\n <intent-composer [$descriptor]=\"$selectedIntentDescriptor()!\" (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\" (click)=\"
|
|
30413
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"core-dom-decision-editor-container\">\r\n\r\n <!-- ========================= -->\r\n <!-- Intent Chain Projection -->\r\n <!-- ========================= -->\r\n <section class=\"intent-chain\">\r\n\r\n @if ($projection().intents.length > 0) {\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 <div class=\"intent-row\">\r\n <div class=\"intent-header\" (click)=\"onSelectEditedIntent(intent.seq)\">\r\n <span class=\"intent-seq\" [appTooltip]=\"intent.actionLabel\" [showAnyway]=\"true\" [position]=\"'above'\">#{{\r\n intent.seq }}</span>\r\n <span class=\"intent-label\">{{ intent.summary }}</span>\r\n </div>\r\n\r\n <div class=\"intent-tool\">\r\n <button type=\"button\" class=\"btn btn-danger-ghost\" (click)=\"onRemoveIntent(intent.seq)\"\r\n [appTooltip]=\"'G\u1EE1'\" [showAnyway]=\"true\" [position]=\"'above'\">\r\n <i class=\"feather-trash\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </li>\r\n }\r\n </ol>\r\n }\r\n\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Add Intent Entry Point -->\r\n <!-- ========================= -->\r\n <section class=\"intent-actions-panel\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"onAddIntent()\">\r\n + Th\u00EAm Intent\r\n </button>\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Output Preview (Derived) -->\r\n <!-- ========================= -->\r\n <section class=\"output-preview\">\r\n @if ($projection().outputs.length > 1) {\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 <!-- @if (isDevMode) {\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 <label>allTokens</label>\r\n <pre>{{ $allTokens() | json }}</pre>\r\n\r\n } -->\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\r\n @if ($selectedIntentDescriptor()) {\r\n\r\n <intent-composer [$descriptor]=\"$selectedIntentDescriptor()!\" (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\" (click)=\"onMenuSelectIntent(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 @if (!$activeSeq() || true) {\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 }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n</div>", styles: [".core-dom-decision-editor-container .intent-actions-panel button{border-radius:0;font-size:13px}.core-dom-decision-editor-container .modal-container{overflow:scroll}.core-dom-decision-editor-container .modal-container .modal-content-root{overflow:visible;max-height:unset;padding:0}.core-dom-decision-editor-container .modal-container .modal-content-root .intent-composer-entry{padding:0 15px 15px}.core-dom-decision-editor-container .modal-container .modal-content-root .intent-composer-entry .popup-actions{display:flex;align-items:center;justify-content:flex-end}.core-dom-decision-editor-container .modal-container .modal-content-root .intent-composer-entry .popup-actions button{font-size:13px;border-radius:0}.core-dom-decision-editor-container .modal-container .modal-content-root ul.intent-item-registry{margin-top:15px;padding-top:15px;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;background:#fff;padding:10px 12px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card:hover{box-shadow:.4rem 0 2rem #0000002e}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row{display:flex;align-items:center;justify-content:space-between}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-header{display:flex;align-items:center;gap:8px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-header .intent-seq{background:#e6f0ff;color:#084298;border-radius:3px;padding:2px 6px;cursor:pointer}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-header .intent-label{color:#212529;cursor:pointer}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-header .intent-label:hover{color:#fff;color:#dd5f2a}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-tool{display:flex;gap:8px;padding-left:28px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-tool .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-row .intent-tool .btn-ghost{color:#0d6efd}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-tool .btn-ghost:hover{text-decoration:underline}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-tool .btn-danger-ghost{color:#dc3545}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-tool .btn-danger-ghost:hover{text-decoration:underline}\n"], dependencies: [{ kind: "component", type: IntentComposerComponent, selector: "intent-composer", inputs: ["$descriptor"], outputs: ["intentComposed", "cancelled"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }] }); }
|
|
30281
30414
|
}
|
|
30282
30415
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDomDecisionEditorComponent, decorators: [{
|
|
30283
30416
|
type: Component,
|
|
@@ -30298,7 +30431,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
30298
30431
|
multi: true,
|
|
30299
30432
|
useExisting: forwardRef(() => CoreDomDecisionEditorComponent),
|
|
30300
30433
|
},
|
|
30301
|
-
], template: "<div class=\"core-dom-decision-editor-container\">\r\n\r\n <!-- ========================= -->\r\n <!-- Intent Chain Projection -->\r\n <!-- ========================= -->\r\n <section class=\"intent-chain\">\r\n\r\n @if ($projection().intents.length > 0) {\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 <div class=\"intent-row\">\r\n <div class=\"intent-header\">\r\n <span class=\"intent-seq\" [appTooltip]=\"intent.actionLabel\" [showAnyway]=\"true\" [position]=\"'above'\">#{{\r\n intent.seq }}</span>\r\n <span class=\"intent-label\">{{ intent.summary }}</span>\r\n </div>\r\n\r\n <div class=\"intent-tool\">\r\n <button type=\"button\" class=\"btn btn-danger-ghost\" (click)=\"onRemoveIntent(intent.seq)\"\r\n [appTooltip]=\"'G\u1EE1'\" [showAnyway]=\"true\" [position]=\"'above'\">\r\n <i class=\"feather-trash\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </li>\r\n }\r\n </ol>\r\n }\r\n\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Add Intent Entry Point -->\r\n <!-- ========================= -->\r\n <section class=\"intent-actions-panel\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"onAddIntent()\">\r\n + Th\u00EAm Intent\r\n </button>\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Output Preview (Derived) -->\r\n <!-- ========================= -->\r\n <section class=\"output-preview\">\r\n @if ($projection().outputs.length > 1) {\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 <!-- @if (isDevMode) {\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 <label>allTokens</label>\r\n <pre>{{ $allTokens() | json }}</pre>\r\n\r\n } -->\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\r\n @if ($selectedIntentDescriptor()) {\r\n\r\n <intent-composer [$descriptor]=\"$selectedIntentDescriptor()!\" (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\" (click)=\"
|
|
30434
|
+
], template: "<div class=\"core-dom-decision-editor-container\">\r\n\r\n <!-- ========================= -->\r\n <!-- Intent Chain Projection -->\r\n <!-- ========================= -->\r\n <section class=\"intent-chain\">\r\n\r\n @if ($projection().intents.length > 0) {\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 <div class=\"intent-row\">\r\n <div class=\"intent-header\" (click)=\"onSelectEditedIntent(intent.seq)\">\r\n <span class=\"intent-seq\" [appTooltip]=\"intent.actionLabel\" [showAnyway]=\"true\" [position]=\"'above'\">#{{\r\n intent.seq }}</span>\r\n <span class=\"intent-label\">{{ intent.summary }}</span>\r\n </div>\r\n\r\n <div class=\"intent-tool\">\r\n <button type=\"button\" class=\"btn btn-danger-ghost\" (click)=\"onRemoveIntent(intent.seq)\"\r\n [appTooltip]=\"'G\u1EE1'\" [showAnyway]=\"true\" [position]=\"'above'\">\r\n <i class=\"feather-trash\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </li>\r\n }\r\n </ol>\r\n }\r\n\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Add Intent Entry Point -->\r\n <!-- ========================= -->\r\n <section class=\"intent-actions-panel\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"onAddIntent()\">\r\n + Th\u00EAm Intent\r\n </button>\r\n </section>\r\n\r\n <!-- ========================= -->\r\n <!-- Output Preview (Derived) -->\r\n <!-- ========================= -->\r\n <section class=\"output-preview\">\r\n @if ($projection().outputs.length > 1) {\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 <!-- @if (isDevMode) {\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 <label>allTokens</label>\r\n <pre>{{ $allTokens() | json }}</pre>\r\n\r\n } -->\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\r\n @if ($selectedIntentDescriptor()) {\r\n\r\n <intent-composer [$descriptor]=\"$selectedIntentDescriptor()!\" (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\" (click)=\"onMenuSelectIntent(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 @if (!$activeSeq() || true) {\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 }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n</div>", styles: [".core-dom-decision-editor-container .intent-actions-panel button{border-radius:0;font-size:13px}.core-dom-decision-editor-container .modal-container{overflow:scroll}.core-dom-decision-editor-container .modal-container .modal-content-root{overflow:visible;max-height:unset;padding:0}.core-dom-decision-editor-container .modal-container .modal-content-root .intent-composer-entry{padding:0 15px 15px}.core-dom-decision-editor-container .modal-container .modal-content-root .intent-composer-entry .popup-actions{display:flex;align-items:center;justify-content:flex-end}.core-dom-decision-editor-container .modal-container .modal-content-root .intent-composer-entry .popup-actions button{font-size:13px;border-radius:0}.core-dom-decision-editor-container .modal-container .modal-content-root ul.intent-item-registry{margin-top:15px;padding-top:15px;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;background:#fff;padding:10px 12px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card:hover{box-shadow:.4rem 0 2rem #0000002e}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row{display:flex;align-items:center;justify-content:space-between}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-header{display:flex;align-items:center;gap:8px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-header .intent-seq{background:#e6f0ff;color:#084298;border-radius:3px;padding:2px 6px;cursor:pointer}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-header .intent-label{color:#212529;cursor:pointer}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-header .intent-label:hover{color:#fff;color:#dd5f2a}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-tool{display:flex;gap:8px;padding-left:28px}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-tool .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-row .intent-tool .btn-ghost{color:#0d6efd}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-tool .btn-ghost:hover{text-decoration:underline}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-tool .btn-danger-ghost{color:#dc3545}.core-dom-decision-editor-container .intent-chain .intent-list .intent-item .intent-card .intent-row .intent-tool .btn-danger-ghost:hover{text-decoration:underline}\n"] }]
|
|
30302
30435
|
}], ctorParameters: () => [] });
|
|
30303
30436
|
|
|
30304
30437
|
class CoreControlComponent extends BaseComponent {
|
|
@@ -35380,7 +35513,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
35380
35513
|
const hrmSchemaRoutes = [
|
|
35381
35514
|
{
|
|
35382
35515
|
path: '',
|
|
35383
|
-
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-
|
|
35516
|
+
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-B4vDuuXE.mjs').then(m => m.HrmSchemaComponent)
|
|
35384
35517
|
}
|
|
35385
35518
|
];
|
|
35386
35519
|
|
|
@@ -37553,7 +37686,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
37553
37686
|
const simpleChatRoutes = [
|
|
37554
37687
|
{
|
|
37555
37688
|
path: '',
|
|
37556
|
-
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-
|
|
37689
|
+
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-Bcx7iKbD.mjs').then(m => m.SimpleChatComponent)
|
|
37557
37690
|
}
|
|
37558
37691
|
];
|
|
37559
37692
|
|
|
@@ -38219,7 +38352,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
38219
38352
|
const coreSysActionRoutes = [
|
|
38220
38353
|
{
|
|
38221
38354
|
path: "",
|
|
38222
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-sys-action.component-
|
|
38355
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-sys-action.component-D5zxtvyP.mjs').then(m => m.CoreSysActionComponent),
|
|
38223
38356
|
children: [
|
|
38224
38357
|
{
|
|
38225
38358
|
path: ":id",
|
|
@@ -39612,11 +39745,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
39612
39745
|
const sysSmtpClientRoutes = [
|
|
39613
39746
|
{
|
|
39614
39747
|
path: '',
|
|
39615
|
-
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client.component-
|
|
39748
|
+
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client.component-DTc9NmGX.mjs').then(m => m.SysSmtpClientComponent),
|
|
39616
39749
|
children: [
|
|
39617
39750
|
{
|
|
39618
39751
|
path: ':id',
|
|
39619
|
-
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client-edit.component-
|
|
39752
|
+
loadComponent: () => import('./ngx-histaff-alpha-sys-smtp-client-edit.component-1UxoYqvL.mjs').then(m => m.SysSmtpClientEditComponent),
|
|
39620
39753
|
outlet: 'corePageListAux'
|
|
39621
39754
|
}
|
|
39622
39755
|
]
|
|
@@ -40802,11 +40935,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
40802
40935
|
const coreDocGenRoutes = [
|
|
40803
40936
|
{
|
|
40804
40937
|
path: 'template-list',
|
|
40805
|
-
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-
|
|
40938
|
+
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-DeIk9yaX.mjs').then(m => m.TemplateListComponent),
|
|
40806
40939
|
},
|
|
40807
40940
|
{
|
|
40808
40941
|
path: ":id",
|
|
40809
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-
|
|
40942
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-BR0ZVik4.mjs').then(m => m.CoreTemplateEditorComponent),
|
|
40810
40943
|
canDeactivate: [CanDeactivateGuard]
|
|
40811
40944
|
},
|
|
40812
40945
|
{
|
|
@@ -40835,7 +40968,7 @@ const coreFormDesignRoutes = [
|
|
|
40835
40968
|
},
|
|
40836
40969
|
{
|
|
40837
40970
|
path: ':id',
|
|
40838
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-
|
|
40971
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-BNIDGKDm.mjs').then(m => m.CoreFormDesignComponent)
|
|
40839
40972
|
}
|
|
40840
40973
|
];
|
|
40841
40974
|
|
|
@@ -41746,7 +41879,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
41746
41879
|
const coreNavigationTrackerRoutes = [
|
|
41747
41880
|
{
|
|
41748
41881
|
path: '',
|
|
41749
|
-
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-
|
|
41882
|
+
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-D2fXht9F.mjs').then(m => m.TrackerStudioComponent)
|
|
41750
41883
|
}
|
|
41751
41884
|
];
|
|
41752
41885
|
|
|
@@ -44849,33 +44982,33 @@ const coreWorkflowRoutes = [
|
|
|
44849
44982
|
{
|
|
44850
44983
|
path: 'form-assign/:id',
|
|
44851
44984
|
outlet: "formAssignAux",
|
|
44852
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-
|
|
44985
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-autPwDhJ.mjs').then(m => m.WfFormAssignComponent),
|
|
44853
44986
|
canDeactivate: [CanDeactivateGuard]
|
|
44854
44987
|
}
|
|
44855
44988
|
]
|
|
44856
44989
|
},
|
|
44857
44990
|
{
|
|
44858
44991
|
path: 'global-config',
|
|
44859
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-
|
|
44992
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-EfTrufWt.mjs').then(m => m.WfGlobalConfigComponent)
|
|
44860
44993
|
},
|
|
44861
44994
|
{
|
|
44862
44995
|
path: 'db-settings',
|
|
44863
|
-
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-
|
|
44996
|
+
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-CCQLmJTw.mjs').then(m => m.DbSettingsComponent)
|
|
44864
44997
|
},
|
|
44865
44998
|
{
|
|
44866
44999
|
path: 'workflow-consume',
|
|
44867
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-
|
|
45000
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-B0x1MLQX.mjs').then(m => m.CoreWorkflowConsumeComponent),
|
|
44868
45001
|
children: [
|
|
44869
45002
|
{
|
|
44870
45003
|
path: ':id',
|
|
44871
45004
|
outlet: "workflowConsume",
|
|
44872
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
45005
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-losMBBZ9.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
44873
45006
|
}
|
|
44874
45007
|
]
|
|
44875
45008
|
},
|
|
44876
45009
|
{
|
|
44877
45010
|
path: 'workflow-consume/:id',
|
|
44878
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
45011
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-losMBBZ9.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
44879
45012
|
},
|
|
44880
45013
|
{
|
|
44881
45014
|
path: 'workflow-group-edit/:id',
|
|
@@ -44885,21 +45018,21 @@ const coreWorkflowRoutes = [
|
|
|
44885
45018
|
},
|
|
44886
45019
|
{
|
|
44887
45020
|
path: 'design/:id',
|
|
44888
|
-
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-
|
|
45021
|
+
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-CTnWCpVz.mjs').then(m => m.wfDesignWrapperRoutes),
|
|
44889
45022
|
},
|
|
44890
45023
|
]
|
|
44891
45024
|
},
|
|
44892
45025
|
{
|
|
44893
45026
|
path: 'react/:id',
|
|
44894
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-
|
|
45027
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-B51fXgjI.mjs').then(m => m.WfInstanceStepReactComponent)
|
|
44895
45028
|
},
|
|
44896
45029
|
{
|
|
44897
45030
|
path: 'status/:id',
|
|
44898
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-
|
|
45031
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-CqTg9wOl.mjs').then(m => m.WfInstanceStatusComponent)
|
|
44899
45032
|
},
|
|
44900
45033
|
{
|
|
44901
45034
|
path: 'lab',
|
|
44902
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-lab.component-
|
|
45035
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-lab.component-56r-UN3Q.mjs').then(m => m.WfLabComponent)
|
|
44903
45036
|
}
|
|
44904
45037
|
];
|
|
44905
45038
|
|
|
@@ -47508,4 +47641,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
47508
47641
|
*/
|
|
47509
47642
|
|
|
47510
47643
|
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 };
|
|
47511
|
-
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-
|
|
47644
|
+
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-DTx4Tmxu.mjs.map
|