ngx-histaff-alpha 6.4.7 → 6.4.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-DdDwSM6u.mjs → ngx-histaff-alpha-ai-hint-for-table.component-CKKqdgg7.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-DdDwSM6u.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-CKKqdgg7.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-CyFCxOF0.mjs → ngx-histaff-alpha-core-form-design.component-BZvtwXkM.mjs} +458 -254
- package/fesm2022/ngx-histaff-alpha-core-form-design.component-BZvtwXkM.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-S0ZpRUXN.mjs → ngx-histaff-alpha-core-sys-action.component-C_VAQLOE.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-S0ZpRUXN.mjs.map → ngx-histaff-alpha-core-sys-action.component-C_VAQLOE.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-DdLVaGmB.mjs → ngx-histaff-alpha-core-template-editor.component-DmTad7AG.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-DdLVaGmB.mjs.map → ngx-histaff-alpha-core-template-editor.component-DmTad7AG.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-D7kdGgFZ.mjs → ngx-histaff-alpha-core-toast-loading.component-C3JfOCoY.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-D7kdGgFZ.mjs.map → ngx-histaff-alpha-core-toast-loading.component-C3JfOCoY.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-C2MRQLls.mjs → ngx-histaff-alpha-core-workflow-consume.component-BvFyWEqO.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-C2MRQLls.mjs.map → ngx-histaff-alpha-core-workflow-consume.component-BvFyWEqO.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-BliMPr0A.mjs → ngx-histaff-alpha-db-settings.component-CmO49AZU.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-BliMPr0A.mjs.map → ngx-histaff-alpha-db-settings.component-CmO49AZU.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-Ky5KiJ0p.mjs → ngx-histaff-alpha-design-wrapper.component-BpGl04Dv.mjs} +49 -7
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-BpGl04Dv.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-NqkSYCoA.mjs → ngx-histaff-alpha-design-wrapper.route-D3Lpsk-N.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-NqkSYCoA.mjs.map → ngx-histaff-alpha-design-wrapper.route-D3Lpsk-N.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-B1G4bcjr.mjs → ngx-histaff-alpha-hrm-schema.component-Bd3CdbC_.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-B1G4bcjr.mjs.map → ngx-histaff-alpha-hrm-schema.component-Bd3CdbC_.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-live-form.component-BEq38Xps.mjs → ngx-histaff-alpha-live-form.component-LdFysTvc.mjs} +91 -139
- package/fesm2022/ngx-histaff-alpha-live-form.component-LdFysTvc.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-ls0sZJcJ.mjs → ngx-histaff-alpha-ngx-histaff-alpha-TWTSrQ0J.mjs} +295 -309
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-TWTSrQ0J.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BajN-snY.mjs → ngx-histaff-alpha-simple-chat.component-Bijz8uoH.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BajN-snY.mjs.map → ngx-histaff-alpha-simple-chat.component-Bijz8uoH.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-template-list.component-BtsN7KE4.mjs → ngx-histaff-alpha-template-list.component-CKNXhE7n.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-template-list.component-BtsN7KE4.mjs.map → ngx-histaff-alpha-template-list.component-CKNXhE7n.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-B-goIeUx.mjs → ngx-histaff-alpha-tracker-studio.component-BLFeI6xO.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-B-goIeUx.mjs.map → ngx-histaff-alpha-tracker-studio.component-BLFeI6xO.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-Btmiiris.mjs → ngx-histaff-alpha-wf-form-assign.component-nct49SFr.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-Btmiiris.mjs.map → ngx-histaff-alpha-wf-form-assign.component-nct49SFr.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-C-xap0Tf.mjs → ngx-histaff-alpha-wf-global-config.component-BSuUBIrY.mjs} +18 -2
- package/fesm2022/ngx-histaff-alpha-wf-global-config.component-BSuUBIrY.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-DnUwQI1R.mjs → ngx-histaff-alpha-wf-instance-status.component-B58W1ZBc.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-DnUwQI1R.mjs.map → ngx-histaff-alpha-wf-instance-status.component-B58W1ZBc.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-Dng7IbhV.mjs → ngx-histaff-alpha-wf-instance-step-react.component-iyoN_zDV.mjs} +6 -7
- package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-iyoN_zDV.mjs.map +1 -0
- package/fesm2022/ngx-histaff-alpha-wf-lab.component-Db5dIgKZ.mjs +130 -0
- package/fesm2022/ngx-histaff-alpha-wf-lab.component-Db5dIgKZ.mjs.map +1 -0
- package/fesm2022/ngx-histaff-alpha.mjs +1 -1
- package/lib/app/libraries/core-form/core-form/enum-interfaces.d.ts +6 -0
- package/lib/app/libraries/core-form-design/core-form-design.component.d.ts +1 -1
- package/lib/app/libraries/core-form-design/core-form-group-editor.component.d.ts +1 -1
- package/lib/app/libraries/core-form-design/field-setting/field-setting-props.registry.d.ts +2 -0
- package/lib/app/libraries/core-form-design/field-setting/field-setting.component.d.ts +8 -2
- package/lib/app/libraries/core-form-design/field-setting/type-specific/seeker-props/seeker-props.component.d.ts +31 -7
- package/lib/app/libraries/core-form-design/field-setting/type-specific/seeker-props/seeker-props.service.d.ts +16 -0
- package/lib/app/libraries/core-form-design/live-form/live-form.component.d.ts +3 -1
- package/lib/app/libraries/core-form-design/props-host/props-host.component.d.ts +6 -8
- package/lib/app/libraries/core-orgchartflex/core-orgchartflex/core-orgchartflex.component.d.ts +13 -8
- package/lib/app/libraries/core-workflow-builder/core-workflow.service.d.ts +1 -1
- package/lib/app/libraries/core-workflow-builder/interfaces/IStepConfig.d.ts +10 -1
- package/lib/app/libraries/core-workflow-builder/wf-lab/wf-lab.component.d.ts +35 -0
- package/lib/app/libraries/core-workflow-builder/wf-process-design/wf-step-config-shell/wf-formui-config/wf-formui-config.component.d.ts +21 -0
- package/package.json +2 -2
- package/fesm2022/ngx-histaff-alpha-core-form-design.component-CyFCxOF0.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-Ky5KiJ0p.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-email-props.component-Cf35Pexq.mjs +0 -14
- package/fesm2022/ngx-histaff-alpha-email-props.component-Cf35Pexq.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-form-array-props.component-jsc0BYaH.mjs +0 -26
- package/fesm2022/ngx-histaff-alpha-form-array-props.component-jsc0BYaH.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-live-form.component-BEq38Xps.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-ls0sZJcJ.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-global-config.component-C-xap0Tf.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-Dng7IbhV.mjs.map +0 -1
|
@@ -6758,14 +6758,19 @@ class CoreFormDesignService {
|
|
|
6758
6758
|
const fullPath = path ? `${path}.${key}` : key;
|
|
6759
6759
|
const aVal = a[key];
|
|
6760
6760
|
const bVal = b[key];
|
|
6761
|
-
|
|
6762
|
-
if (
|
|
6763
|
-
|
|
6764
|
-
|
|
6765
|
-
|
|
6766
|
-
|
|
6761
|
+
try {
|
|
6762
|
+
if (JSON.stringify(aVal) !== JSON.stringify(bVal)) {
|
|
6763
|
+
if (typeof aVal === 'object' && typeof bVal === 'object') {
|
|
6764
|
+
result.push(...getChangedKeys(aVal, bVal, fullPath));
|
|
6765
|
+
}
|
|
6766
|
+
else {
|
|
6767
|
+
result.push(fullPath);
|
|
6768
|
+
}
|
|
6767
6769
|
}
|
|
6768
6770
|
}
|
|
6771
|
+
catch (err) {
|
|
6772
|
+
console.warn(err);
|
|
6773
|
+
}
|
|
6769
6774
|
}
|
|
6770
6775
|
return result;
|
|
6771
6776
|
}
|
|
@@ -6989,6 +6994,7 @@ class CoreFormDesignService {
|
|
|
6989
6994
|
'DROPDOWN:any': 'dropdown-props',
|
|
6990
6995
|
'CHECKLIST': 'checklist-props',
|
|
6991
6996
|
'SEEKER': 'seeker-props',
|
|
6997
|
+
'SEEKER:any[]': 'seeker-props',
|
|
6992
6998
|
'FORM_ARRAY:children': 'form-array-props'
|
|
6993
6999
|
};
|
|
6994
7000
|
this.$currentPropsComponent = computed(() => {
|
|
@@ -7567,47 +7573,252 @@ class CoreFormDesignService {
|
|
|
7567
7573
|
isType(type) {
|
|
7568
7574
|
return this.$draggingControl()?.controlType === type;
|
|
7569
7575
|
}
|
|
7576
|
+
/*
|
|
7577
|
+
normalize(control: Partial<IFormBaseControl>): IFormBaseControl {
|
|
7578
|
+
this.normalizeCalledCount$.next(this.normalizeCalledCount$.value + 1);
|
|
7579
|
+
const type = control.controlType || EnumFormBaseContolType.TEXTBOX;
|
|
7580
|
+
const fallback = this.defaultByControlType[type] ?? {};
|
|
7581
|
+
|
|
7582
|
+
const base: IFormBaseControl = {
|
|
7583
|
+
...fallback,
|
|
7584
|
+
...control,
|
|
7585
|
+
field: control.field ?? this.generateUniqueField(),
|
|
7586
|
+
controlType: type,
|
|
7587
|
+
type: control.type ?? 'any',
|
|
7588
|
+
flexSize: control.flexSize ?? 12,
|
|
7589
|
+
label: control.label ?? 'Untitled Field',
|
|
7590
|
+
value: control.value,
|
|
7591
|
+
multiMode: control.multiMode,
|
|
7592
|
+
readonly: control.readonly,
|
|
7593
|
+
disabled: control.disabled,
|
|
7594
|
+
showPlaceholder: control.showPlaceholder,
|
|
7595
|
+
placeholder: control.placeholder,
|
|
7596
|
+
headless: control.headless,
|
|
7597
|
+
assignTo: control.assignTo,
|
|
7598
|
+
formArraySections: control.controlType === EnumFormBaseContolType.FORM_ARRAY
|
|
7599
|
+
? this.js.safeTransform(control.formArraySections ?? []).obj as ICoreFormSection[]
|
|
7600
|
+
: [],
|
|
7601
|
+
};
|
|
7602
|
+
|
|
7603
|
+
// 🔒 Enrich validators: ensure all are full IValidator with ValidatorFn
|
|
7604
|
+
const userValidatorsRaw = control.validators ?? [];
|
|
7605
|
+
|
|
7606
|
+
const userValidators: IValidator[] = userValidatorsRaw.map(v => {
|
|
7607
|
+
return typeof v.validator === 'function'
|
|
7608
|
+
? v
|
|
7609
|
+
: this.buildValidatorFromName(v.name as EnumSupportedRuntimeValidator, v.value, v.readOnly);
|
|
7610
|
+
});
|
|
7611
|
+
|
|
7612
|
+
const defaultValidators = this.getDefaultValidatorsFor(base);
|
|
7613
|
+
|
|
7614
|
+
// 🔄 Merge (user overrides system by name)
|
|
7615
|
+
const mergedValidators = [
|
|
7616
|
+
...userValidators,
|
|
7617
|
+
...defaultValidators.filter(dv => !userValidators.some(uv => uv.name === dv.name))
|
|
7618
|
+
];
|
|
7619
|
+
|
|
7620
|
+
|
|
7621
|
+
base.validators = mergedValidators;
|
|
7622
|
+
|
|
7623
|
+
if (this.selfMappingTypes.includes(type)) {
|
|
7624
|
+
base.optionApiDriven = true;
|
|
7625
|
+
}
|
|
7626
|
+
|
|
7627
|
+
return base;
|
|
7628
|
+
}
|
|
7629
|
+
*/
|
|
7630
|
+
/*
|
|
7631
|
+
normalize(control: Partial<IFormBaseControl>): IFormBaseControl {
|
|
7632
|
+
this.normalizeCalledCount$.next(this.normalizeCalledCount$.value + 1);
|
|
7633
|
+
|
|
7634
|
+
// 🔥 Xác định controlType chuẩn
|
|
7635
|
+
const type = control.controlType || EnumFormBaseContolType.TEXTBOX;
|
|
7636
|
+
|
|
7637
|
+
// 🔥 fallback theo đúng loại control
|
|
7638
|
+
const fallback = this.defaultByControlType[type] ?? {};
|
|
7639
|
+
|
|
7640
|
+
// -------------------------------------------------------------
|
|
7641
|
+
// 1) Build base object (KHÔNG XOÁ SEEKER PROPS)
|
|
7642
|
+
// -------------------------------------------------------------
|
|
7643
|
+
const base: IFormBaseControl = {
|
|
7644
|
+
...fallback, // default cấu hình theo controlType
|
|
7645
|
+
...control, // override từ user
|
|
7646
|
+
|
|
7647
|
+
field: control.field ?? this.generateUniqueField(),
|
|
7648
|
+
controlType: type,
|
|
7649
|
+
|
|
7650
|
+
// KHÔNG ép type = 'any' như bản cũ
|
|
7651
|
+
type: control.type ?? fallback.type ?? 'any',
|
|
7652
|
+
|
|
7653
|
+
flexSize: control.flexSize ?? 12,
|
|
7654
|
+
label: control.label ?? 'Untitled Field',
|
|
7655
|
+
value: control.value,
|
|
7656
|
+
|
|
7657
|
+
multiMode: control.multiMode,
|
|
7658
|
+
readonly: control.readonly,
|
|
7659
|
+
disabled: control.disabled,
|
|
7660
|
+
|
|
7661
|
+
showPlaceholder: control.showPlaceholder,
|
|
7662
|
+
placeholder: control.placeholder,
|
|
7663
|
+
headless: control.headless,
|
|
7664
|
+
assignTo: control.assignTo,
|
|
7665
|
+
|
|
7666
|
+
|
|
7667
|
+
|
|
7668
|
+
|
|
7669
|
+
formArraySections:
|
|
7670
|
+
control.controlType === EnumFormBaseContolType.FORM_ARRAY
|
|
7671
|
+
? this.js.safeTransform(control.formArraySections ?? []).obj as ICoreFormSection[]
|
|
7672
|
+
: [],
|
|
7673
|
+
};
|
|
7674
|
+
|
|
7675
|
+
// -------------------------------------------------------------
|
|
7676
|
+
// 2) Validators: Merge default + user validators
|
|
7677
|
+
// -------------------------------------------------------------
|
|
7678
|
+
const userValidatorsRaw = control.validators ?? [];
|
|
7679
|
+
|
|
7680
|
+
const userValidators: IValidator[] = userValidatorsRaw.map(v => {
|
|
7681
|
+
return typeof v.validator === 'function'
|
|
7682
|
+
? v
|
|
7683
|
+
: this.buildValidatorFromName(
|
|
7684
|
+
v.name as EnumSupportedRuntimeValidator,
|
|
7685
|
+
v.value,
|
|
7686
|
+
v.readOnly
|
|
7687
|
+
);
|
|
7688
|
+
});
|
|
7689
|
+
|
|
7690
|
+
const defaultValidators = this.getDefaultValidatorsFor(base);
|
|
7691
|
+
|
|
7692
|
+
// user override bằng name
|
|
7693
|
+
const mergedValidators = [
|
|
7694
|
+
...userValidators,
|
|
7695
|
+
...defaultValidators.filter(
|
|
7696
|
+
dv => !userValidators.some(uv => uv.name === dv.name)
|
|
7697
|
+
)
|
|
7698
|
+
];
|
|
7699
|
+
|
|
7700
|
+
base.validators = mergedValidators;
|
|
7701
|
+
|
|
7702
|
+
// -------------------------------------------------------------
|
|
7703
|
+
// 3) Self mapping types → set flag
|
|
7704
|
+
// -------------------------------------------------------------
|
|
7705
|
+
if (this.selfMappingTypes.includes(type)) {
|
|
7706
|
+
base.optionApiDriven = true;
|
|
7707
|
+
}
|
|
7708
|
+
|
|
7709
|
+
return base;
|
|
7710
|
+
}
|
|
7711
|
+
*/
|
|
7570
7712
|
normalize(control) {
|
|
7571
|
-
|
|
7572
|
-
const type = control.controlType || EnumFormBaseContolType.TEXTBOX;
|
|
7713
|
+
const type = control.controlType ?? EnumFormBaseContolType.TEXTBOX;
|
|
7573
7714
|
const fallback = this.defaultByControlType[type] ?? {};
|
|
7574
|
-
|
|
7575
|
-
|
|
7576
|
-
|
|
7715
|
+
// -------------------------------------------------------------------
|
|
7716
|
+
// A. MANDATORY BLOCK (luôn có)
|
|
7717
|
+
// -------------------------------------------------------------------
|
|
7718
|
+
const baseMandatory = {
|
|
7577
7719
|
field: control.field ?? this.generateUniqueField(),
|
|
7578
7720
|
controlType: type,
|
|
7579
|
-
type: control.type ?? 'any',
|
|
7721
|
+
type: control.type ?? fallback.type ?? 'any',
|
|
7580
7722
|
flexSize: control.flexSize ?? 12,
|
|
7581
7723
|
label: control.label ?? 'Untitled Field',
|
|
7582
7724
|
value: control.value,
|
|
7583
|
-
|
|
7725
|
+
};
|
|
7726
|
+
// -------------------------------------------------------------------
|
|
7727
|
+
// B. OPTIONAL SHARED BLOCK (áp dụng cho mọi control)
|
|
7728
|
+
// -------------------------------------------------------------------
|
|
7729
|
+
const baseOptional = {
|
|
7584
7730
|
readonly: control.readonly,
|
|
7731
|
+
hidden: control.hidden,
|
|
7585
7732
|
disabled: control.disabled,
|
|
7586
|
-
|
|
7733
|
+
height: control.height,
|
|
7734
|
+
popupHeight: control.popupHeight,
|
|
7587
7735
|
placeholder: control.placeholder,
|
|
7588
7736
|
headless: control.headless,
|
|
7589
|
-
|
|
7590
|
-
|
|
7591
|
-
|
|
7592
|
-
|
|
7737
|
+
tooltip: control.tooltip,
|
|
7738
|
+
htmlTooltip: control.htmlTooltip,
|
|
7739
|
+
hint: control.hint,
|
|
7740
|
+
colSpan: control.colSpan,
|
|
7741
|
+
rowSpan: control.rowSpan,
|
|
7742
|
+
pipe: control.pipe,
|
|
7743
|
+
};
|
|
7744
|
+
// -------------------------------------------------------------------
|
|
7745
|
+
// C. CONTROL-SPECIFIC BLOCK
|
|
7746
|
+
// -------------------------------------------------------------------
|
|
7747
|
+
let baseSpecific = {};
|
|
7748
|
+
switch (type) {
|
|
7749
|
+
case EnumFormBaseContolType.FORM_ARRAY:
|
|
7750
|
+
baseSpecific = {
|
|
7751
|
+
isFormArray: true,
|
|
7752
|
+
formArraySections: this.js.safeTransform(control.formArraySections ?? []).obj
|
|
7753
|
+
};
|
|
7754
|
+
break;
|
|
7755
|
+
case EnumFormBaseContolType.SEEKER:
|
|
7756
|
+
baseSpecific = {
|
|
7757
|
+
multiMode: control.multiMode ?? false,
|
|
7758
|
+
seekerSourceType: control.seekerSourceType,
|
|
7759
|
+
useTheseColumns: control.useTheseColumns ?? [],
|
|
7760
|
+
excludedColumns: control.excludedColumns ?? [],
|
|
7761
|
+
hideOrgTree: control.hideOrgTree ?? false,
|
|
7762
|
+
sourceSpaceHeight: control.sourceSpaceHeight,
|
|
7763
|
+
boundFrom: control.boundFrom ?? 'id',
|
|
7764
|
+
shownFrom: control.shownFrom ?? 'fullname',
|
|
7765
|
+
alsoBindTo: control.alsoBindTo ?? [],
|
|
7766
|
+
seekerVerifyIgnore: control.seekerVerifyIgnore ?? false,
|
|
7767
|
+
// METADATA CORRECT
|
|
7768
|
+
___preDefinedOuterFilter: control.___preDefinedOuterFilter ?? [],
|
|
7769
|
+
___preDefinedOuterParam: control.___preDefinedOuterParam ?? {},
|
|
7770
|
+
};
|
|
7771
|
+
break;
|
|
7772
|
+
case EnumFormBaseContolType.DROPDOWN:
|
|
7773
|
+
baseSpecific = {
|
|
7774
|
+
optionApiDriven: control.optionApiDriven ?? false,
|
|
7775
|
+
optionApi: control.optionApi,
|
|
7776
|
+
optionValueFrom: control.optionValueFrom,
|
|
7777
|
+
optionTextFrom: control.optionTextFrom,
|
|
7778
|
+
options: control.options ?? [],
|
|
7779
|
+
};
|
|
7780
|
+
break;
|
|
7781
|
+
case EnumFormBaseContolType.CHECKLIST:
|
|
7782
|
+
baseSpecific = {
|
|
7783
|
+
checklistOptions: control.___checklistOptions ?? [],
|
|
7784
|
+
};
|
|
7785
|
+
break;
|
|
7786
|
+
case EnumFormBaseContolType.RADIOGROUP:
|
|
7787
|
+
baseSpecific = {
|
|
7788
|
+
radioGroupOptions: control.___radioGroupOptions ?? []
|
|
7789
|
+
};
|
|
7790
|
+
break;
|
|
7791
|
+
case EnumFormBaseContolType.DATEPICKER:
|
|
7792
|
+
baseSpecific = {
|
|
7793
|
+
rangeLimit: control.rangeLimit,
|
|
7794
|
+
popupAlign: control.popupAlign,
|
|
7795
|
+
showPlaceholder: control.showPlaceholder,
|
|
7796
|
+
};
|
|
7797
|
+
break;
|
|
7798
|
+
// … thêm MCC, GRIDBUFFER, etc nếu cần
|
|
7799
|
+
}
|
|
7800
|
+
// -------------------------------------------------------------------
|
|
7801
|
+
// D. RUNTIME BLOCK — KHÔNG BAO GIỜ SAVE VÀO METADATA
|
|
7802
|
+
// -------------------------------------------------------------------
|
|
7803
|
+
const baseRuntime = {
|
|
7804
|
+
selectedData$: control.selectedData$,
|
|
7805
|
+
fullValueRow$: control.fullValueRow$,
|
|
7806
|
+
focus$: control.focus$,
|
|
7807
|
+
blur$: control.blur$,
|
|
7808
|
+
click$: control.click$,
|
|
7809
|
+
preDefinedOuterFilter$: control.preDefinedOuterFilter$,
|
|
7810
|
+
preDefinedOuterParam$: control.preDefinedOuterParam$,
|
|
7811
|
+
};
|
|
7812
|
+
// -------------------------------------------------------------------
|
|
7813
|
+
// FINAL MERGE
|
|
7814
|
+
// -------------------------------------------------------------------
|
|
7815
|
+
const base = {
|
|
7816
|
+
...fallback,
|
|
7817
|
+
...baseMandatory,
|
|
7818
|
+
...baseOptional,
|
|
7819
|
+
...baseSpecific,
|
|
7820
|
+
...baseRuntime,
|
|
7593
7821
|
};
|
|
7594
|
-
// 🔒 Enrich validators: ensure all are full IValidator with ValidatorFn
|
|
7595
|
-
const userValidatorsRaw = control.validators ?? [];
|
|
7596
|
-
const userValidators = userValidatorsRaw.map(v => {
|
|
7597
|
-
return typeof v.validator === 'function'
|
|
7598
|
-
? v
|
|
7599
|
-
: this.buildValidatorFromName(v.name, v.value, v.readOnly);
|
|
7600
|
-
});
|
|
7601
|
-
const defaultValidators = this.getDefaultValidatorsFor(base);
|
|
7602
|
-
// 🔄 Merge (user overrides system by name)
|
|
7603
|
-
const mergedValidators = [
|
|
7604
|
-
...userValidators,
|
|
7605
|
-
...defaultValidators.filter(dv => !userValidators.some(uv => uv.name === dv.name))
|
|
7606
|
-
];
|
|
7607
|
-
base.validators = mergedValidators;
|
|
7608
|
-
if (this.selfMappingTypes.includes(type)) {
|
|
7609
|
-
base.optionApiDriven = true;
|
|
7610
|
-
}
|
|
7611
7822
|
return base;
|
|
7612
7823
|
}
|
|
7613
7824
|
getDefaults(controlType) {
|
|
@@ -7625,6 +7836,8 @@ class CoreFormDesignService {
|
|
|
7625
7836
|
if (!control?.controlType)
|
|
7626
7837
|
return '';
|
|
7627
7838
|
const key = control.controlType + (control.type ? `:${control.type}` : '');
|
|
7839
|
+
console.log("getTypeSpecificPropsComponent", key);
|
|
7840
|
+
console.log("getTypeSpecificPropsComponent", this.propsComponentMap[key] ?? "N/A");
|
|
7628
7841
|
return this.propsComponentMap[key] || '';
|
|
7629
7842
|
}
|
|
7630
7843
|
generateFieldNameFor(control) {
|
|
@@ -9127,8 +9340,8 @@ class CoreWorkflowService {
|
|
|
9127
9340
|
initialSubmit(request) {
|
|
9128
9341
|
return this.appService.post('/api/WfWorkflow/InitialSubmit', request);
|
|
9129
9342
|
}
|
|
9130
|
-
react(unitedCorrelationIds, reactType, reason) {
|
|
9131
|
-
return this.appService.post('/api/WorkflowEngine/React?usehub=true', { unitedCorrelationIds, reactType, reason });
|
|
9343
|
+
react(unitedCorrelationIds, reactType, reason, updatedAttributes) {
|
|
9344
|
+
return this.appService.post('/api/WorkflowEngine/React?usehub=true', { unitedCorrelationIds, reactType, reason, updatedAttributes });
|
|
9132
9345
|
}
|
|
9133
9346
|
inject(unitedCorrelationIds, injectType, reason, injectorEmployeeId = undefined) {
|
|
9134
9347
|
return this.appService.post('/api/WorkflowEngine/Inject?usehub=true', { unitedCorrelationIds, injectType, reason, injectorEmployeeId });
|
|
@@ -12912,7 +13125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
12912
13125
|
|
|
12913
13126
|
class CoreOrgTreeService {
|
|
12914
13127
|
constructor() {
|
|
12915
|
-
this.showSearch$ = new BehaviorSubject(
|
|
13128
|
+
this.showSearch$ = new BehaviorSubject(true);
|
|
12916
13129
|
this.arrowFontSize$ = new BehaviorSubject(18);
|
|
12917
13130
|
this.titleWrapperMaxWidth$ = new BehaviorSubject(250);
|
|
12918
13131
|
}
|
|
@@ -12999,7 +13212,7 @@ class CoreOrgTreeComponent extends CoreFormControlBaseComponent {
|
|
|
12999
13212
|
this.stateIsolated$ = new BehaviorSubject(false);
|
|
13000
13213
|
this.itemDoubleClick = new EventEmitter();
|
|
13001
13214
|
this.itemClick = new EventEmitter();
|
|
13002
|
-
this.showSearch =
|
|
13215
|
+
this.showSearch = true;
|
|
13003
13216
|
this.hiddenToolClickStream$ = new BehaviorSubject('');
|
|
13004
13217
|
this.activeIds = [];
|
|
13005
13218
|
this.checkedIds = [];
|
|
@@ -20846,6 +21059,7 @@ class CoreDropdownComponent extends CoreFormControlBaseComponent {
|
|
|
20846
21059
|
this.options$ = new BehaviorSubject([]);
|
|
20847
21060
|
this.placeholder = '';
|
|
20848
21061
|
this.fitHeightWithItemCount = true;
|
|
21062
|
+
this.value = null;
|
|
20849
21063
|
//searchHeight: number = 38;
|
|
20850
21064
|
this.searchHeight = 0;
|
|
20851
21065
|
this.subscriptions = [];
|
|
@@ -20875,7 +21089,7 @@ class CoreDropdownComponent extends CoreFormControlBaseComponent {
|
|
|
20875
21089
|
this.options$ = new BehaviorSubject([]);
|
|
20876
21090
|
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
20877
21091
|
const body = x.body;
|
|
20878
|
-
const options = body.innerBody.map(item => ({
|
|
21092
|
+
const options = body.innerBody.map((item) => ({
|
|
20879
21093
|
value: item[this.optionValueFrom],
|
|
20880
21094
|
text: item[this.optionTextFrom]
|
|
20881
21095
|
}));
|
|
@@ -20970,17 +21184,6 @@ class CoreDropdownComponent extends CoreFormControlBaseComponent {
|
|
|
20970
21184
|
this.expandState = false;
|
|
20971
21185
|
this.cdr.markForCheck();
|
|
20972
21186
|
}
|
|
20973
|
-
// override writeValue(obj: string | number | null): void {
|
|
20974
|
-
// this.value = obj;
|
|
20975
|
-
// const filter = this.options?.filter(m => m.value === obj)
|
|
20976
|
-
// if (!!filter?.length) {
|
|
20977
|
-
// this.text = filter[0].text
|
|
20978
|
-
// this.enrichment.register(this.form, this.fieldName, this.text);
|
|
20979
|
-
// } else {
|
|
20980
|
-
// this.text = ""
|
|
20981
|
-
// this.enrichment.register(this.form, this.fieldName, "");
|
|
20982
|
-
// }
|
|
20983
|
-
// }
|
|
20984
21187
|
writeValue(obj) {
|
|
20985
21188
|
this.value = obj;
|
|
20986
21189
|
const match = this.options?.find(m => m.value === obj);
|
|
@@ -21089,7 +21292,7 @@ class CoreDropdownComponent extends CoreFormControlBaseComponent {
|
|
|
21089
21292
|
{
|
|
21090
21293
|
provide: NG_VALUE_ACCESSOR,
|
|
21091
21294
|
multi: true,
|
|
21092
|
-
useExisting: CoreDropdownComponent,
|
|
21295
|
+
useExisting: forwardRef(() => CoreDropdownComponent),
|
|
21093
21296
|
},
|
|
21094
21297
|
], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-threedots *ngIf=\"loading\"></app-threedots>\r\n<div #container class=\"core-dropdown-container\" *ngIf=\"!loading\">\r\n <input type=\"checkbox\" class=\"expand-state\" [(ngModel)]=\"expandState\" />\r\n\r\n <div class=\"input-wrapper\">\r\n <input class=\"value\" [value]=\"value\" />\r\n <input class=\"in-place-search form-control\" type=\"text\" [placeholder]=\"placeholder | translate: lang\" [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchTextChange($event)\" autocomplete=\"false\" [class.form-control-disabled]=\"disabled\"\r\n [disabled]=\"disabled\" (keydown)=\"onInPlaceSearchKeydown($event)\" />\r\n <div\r\n class=\"text form-control d-flex align-items-center\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"disabled\"\r\n (click)=\"toggleExpanded()\"\r\n style=\"cursor: pointer;\"\r\n >\r\n <input\r\n type=\"text\"\r\n [readonly]=\"true\"\r\n class=\"flex-grow-1 no-border transparent-bg placeholder-input\"\r\n [class.form-control-disabled]=\"disabled\"\r\n [value]=\"!!loading ? '...' : (text | translate : lang)\"\r\n [placeholder]=\"placeholder || ''\"\r\n [appTooltip]=\"text\"\r\n />\r\n\r\n <div class=\"icon\">\r\n <i class=\"feather-chevron-down\"></i>\r\n </div>\r\n </div>\r\n\r\n @if (!clearDisable) {\r\n <div class=\"clear-icon-wrapper\" [class.d-none]=\"!!disabled || !!!value\" (click)=\"onClickClear()\">\r\n <div class=\"flex-wrapper\" [appTooltip]=\"'UI.CORE_CONTOL_COMMON_CLEAR' | translate : lang\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"dropdown\" [class.form-control-disabled]=\"disabled\" *ngIf=\"!!expandState\" (keydown)=\"onDropdownKeydown($event)\">\r\n <input class=\"search d-none\" type=\"text\" [placeholder]=\"placeholder | translate: lang\" [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchTextChange($event)\" autocomplete=\"false\" [class.form-control-disabled]=\"disabled\"\r\n [disabled]=\"disabled\" />\r\n <core-scroll [localOptions]=\"localOptions\" [itemTemplate]=\"itemTemplateRef\" [itemCount]=\"localOptions.length\"\r\n [height]=\"(fitHeightWithItemCount && localOptions.length * itemHeight < 400) ? localOptions.length * itemHeight : 400 - searchHeight\" [childHeight]=\"itemHeight\"></core-scroll>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemTemplateRef let-context=\"context\">\r\n <li class=\"item-li\" (click)=\"onListItemClick(context, $event)\" (keydown)=\"onListItemKeydown(context, $event)\" [ngStyle]=\"{ height: itemHeight + 'px' }\">\r\n <label [ngStyle]=\"{\r\n width: '100%',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap'\r\n }\" [appTooltip]=\"context.text\">{{ context.text | translate : lang }}</label>\r\n </li>\r\n</ng-template>", styles: [".core-dropdown-container{position:relative;display:block;--indicator-height: 0px;--search-bg-color: white;--search-border-color: #D1D1D1;--search-item-hover-bg: #358ccb;--search-item-hover-color: white;--dropdown-bg: lightyellow;--arrow-color: #358ccb;--height: var(--size-form-control-height);--item-height: 50px;--max-z-index: 0;--search-height: 38px}.core-dropdown-container input.expand-state,.core-dropdown-container .value{display:none}.core-dropdown-container .in-place-search{display:none;position:absolute;top:0;left:0;z-index:1}.core-dropdown-container label.text{width:100%;height:var(--height);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;justify-content:space-between}.core-dropdown-container label.text span{width:calc(100% - var(--height));overflow-x:hidden;text-overflow:ellipsis;color:inherit}.core-dropdown-container .input-wrapper .clear-icon-wrapper{display:none;position:absolute;background-color:transparent;right:24px;top:-4px;width:44px;height:44px;border-radius:.375rem;cursor:pointer}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:24px}.core-dropdown-container .input-wrapper:hover>.clear-icon-wrapper{display:block}.core-dropdown-container .input-wrapper>div>input{border:none;padding-right:15px;width:100%;background:transparent}.core-dropdown-container .input-wrapper>div>.icon{display:block;position:absolute;top:9px;right:12px;color:#848484;background:#fff}.core-dropdown-container div.text div.icon{display:flex;align-items:center;justify-content:center;position:absolute;right:0;top:0;width:calc(var(--height) - 0px);height:calc(var(--height) - 0px);border:#ced4da solid 1px;cursor:pointer}.core-dropdown-container label.text div.icon i{width:14px;height:14px;font-size:14px;color:#848484}.core-dropdown-container .dropdown{display:block;position:absolute;width:100%;max-height:0px;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:.25s linear;z-index:calc(var(--max-z-index) + 1)}.core-dropdown-container .dropdown ul{padding-left:6px}.core-dropdown-container .dropdown ul>li{display:flex;align-items:center;cursor:pointer;padding:0px var(--size-scrollbar-width);transition:.25s linear}.core-dropdown-container .dropdown ul>li>label{width:100%}.core-dropdown-container .dropdown ul>li:hover{background-color:var(--search-item-hover-bg);color:var(--search-item-hover-color);transition:.25s linear}.core-dropdown-container .hover-effect{background-color:var(--search-item-hover-bg);color:var(--search-item-hover-color);transition:.25s linear}.core-dropdown-container input.expand-state:checked~.dropdown{border:1px solid #ced4da;margin-top:3px;max-height:400px;transition:.25s linear}.core-dropdown-container input.expand-state:checked~.input-wrapper>.in-place-search{display:block}.core-dropdown-container input.search{margin:0;width:100%;border:0;border-bottom:1px solid var(--search-border-color);background-color:var(--search-bg-color);position:sticky;top:0;height:38px;padding:6px 12px;font-size:15px}.core-dropdown-container input.placeholder-input{height:30px}.core-dropdown-container input.search:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: CoreScrollComponent, selector: "core-scroll", inputs: ["localOptions", "itemTemplate", "itemCount", "height", "childHeight", "renderAhread"] }, { kind: "component", type: ThreedotsComponent, selector: "app-threedots" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
21095
21298
|
}
|
|
@@ -21107,7 +21310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
21107
21310
|
{
|
|
21108
21311
|
provide: NG_VALUE_ACCESSOR,
|
|
21109
21312
|
multi: true,
|
|
21110
|
-
useExisting: CoreDropdownComponent,
|
|
21313
|
+
useExisting: forwardRef(() => CoreDropdownComponent),
|
|
21111
21314
|
},
|
|
21112
21315
|
], template: "<app-threedots *ngIf=\"loading\"></app-threedots>\r\n<div #container class=\"core-dropdown-container\" *ngIf=\"!loading\">\r\n <input type=\"checkbox\" class=\"expand-state\" [(ngModel)]=\"expandState\" />\r\n\r\n <div class=\"input-wrapper\">\r\n <input class=\"value\" [value]=\"value\" />\r\n <input class=\"in-place-search form-control\" type=\"text\" [placeholder]=\"placeholder | translate: lang\" [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchTextChange($event)\" autocomplete=\"false\" [class.form-control-disabled]=\"disabled\"\r\n [disabled]=\"disabled\" (keydown)=\"onInPlaceSearchKeydown($event)\" />\r\n <div\r\n class=\"text form-control d-flex align-items-center\"\r\n [class.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"disabled\"\r\n (click)=\"toggleExpanded()\"\r\n style=\"cursor: pointer;\"\r\n >\r\n <input\r\n type=\"text\"\r\n [readonly]=\"true\"\r\n class=\"flex-grow-1 no-border transparent-bg placeholder-input\"\r\n [class.form-control-disabled]=\"disabled\"\r\n [value]=\"!!loading ? '...' : (text | translate : lang)\"\r\n [placeholder]=\"placeholder || ''\"\r\n [appTooltip]=\"text\"\r\n />\r\n\r\n <div class=\"icon\">\r\n <i class=\"feather-chevron-down\"></i>\r\n </div>\r\n </div>\r\n\r\n @if (!clearDisable) {\r\n <div class=\"clear-icon-wrapper\" [class.d-none]=\"!!disabled || !!!value\" (click)=\"onClickClear()\">\r\n <div class=\"flex-wrapper\" [appTooltip]=\"'UI.CORE_CONTOL_COMMON_CLEAR' | translate : lang\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"dropdown\" [class.form-control-disabled]=\"disabled\" *ngIf=\"!!expandState\" (keydown)=\"onDropdownKeydown($event)\">\r\n <input class=\"search d-none\" type=\"text\" [placeholder]=\"placeholder | translate: lang\" [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchTextChange($event)\" autocomplete=\"false\" [class.form-control-disabled]=\"disabled\"\r\n [disabled]=\"disabled\" />\r\n <core-scroll [localOptions]=\"localOptions\" [itemTemplate]=\"itemTemplateRef\" [itemCount]=\"localOptions.length\"\r\n [height]=\"(fitHeightWithItemCount && localOptions.length * itemHeight < 400) ? localOptions.length * itemHeight : 400 - searchHeight\" [childHeight]=\"itemHeight\"></core-scroll>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemTemplateRef let-context=\"context\">\r\n <li class=\"item-li\" (click)=\"onListItemClick(context, $event)\" (keydown)=\"onListItemKeydown(context, $event)\" [ngStyle]=\"{ height: itemHeight + 'px' }\">\r\n <label [ngStyle]=\"{\r\n width: '100%',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap'\r\n }\" [appTooltip]=\"context.text\">{{ context.text | translate : lang }}</label>\r\n </li>\r\n</ng-template>", styles: [".core-dropdown-container{position:relative;display:block;--indicator-height: 0px;--search-bg-color: white;--search-border-color: #D1D1D1;--search-item-hover-bg: #358ccb;--search-item-hover-color: white;--dropdown-bg: lightyellow;--arrow-color: #358ccb;--height: var(--size-form-control-height);--item-height: 50px;--max-z-index: 0;--search-height: 38px}.core-dropdown-container input.expand-state,.core-dropdown-container .value{display:none}.core-dropdown-container .in-place-search{display:none;position:absolute;top:0;left:0;z-index:1}.core-dropdown-container label.text{width:100%;height:var(--height);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;justify-content:space-between}.core-dropdown-container label.text span{width:calc(100% - var(--height));overflow-x:hidden;text-overflow:ellipsis;color:inherit}.core-dropdown-container .input-wrapper .clear-icon-wrapper{display:none;position:absolute;background-color:transparent;right:24px;top:-4px;width:44px;height:44px;border-radius:.375rem;cursor:pointer}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.core-dropdown-container .input-wrapper .clear-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:24px}.core-dropdown-container .input-wrapper:hover>.clear-icon-wrapper{display:block}.core-dropdown-container .input-wrapper>div>input{border:none;padding-right:15px;width:100%;background:transparent}.core-dropdown-container .input-wrapper>div>.icon{display:block;position:absolute;top:9px;right:12px;color:#848484;background:#fff}.core-dropdown-container div.text div.icon{display:flex;align-items:center;justify-content:center;position:absolute;right:0;top:0;width:calc(var(--height) - 0px);height:calc(var(--height) - 0px);border:#ced4da solid 1px;cursor:pointer}.core-dropdown-container label.text div.icon i{width:14px;height:14px;font-size:14px;color:#848484}.core-dropdown-container .dropdown{display:block;position:absolute;width:100%;max-height:0px;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:.25s linear;z-index:calc(var(--max-z-index) + 1)}.core-dropdown-container .dropdown ul{padding-left:6px}.core-dropdown-container .dropdown ul>li{display:flex;align-items:center;cursor:pointer;padding:0px var(--size-scrollbar-width);transition:.25s linear}.core-dropdown-container .dropdown ul>li>label{width:100%}.core-dropdown-container .dropdown ul>li:hover{background-color:var(--search-item-hover-bg);color:var(--search-item-hover-color);transition:.25s linear}.core-dropdown-container .hover-effect{background-color:var(--search-item-hover-bg);color:var(--search-item-hover-color);transition:.25s linear}.core-dropdown-container input.expand-state:checked~.dropdown{border:1px solid #ced4da;margin-top:3px;max-height:400px;transition:.25s linear}.core-dropdown-container input.expand-state:checked~.input-wrapper>.in-place-search{display:block}.core-dropdown-container input.search{margin:0;width:100%;border:0;border-bottom:1px solid var(--search-border-color);background-color:var(--search-bg-color);position:sticky;top:0;height:38px;padding:6px 12px;font-size:15px}.core-dropdown-container input.placeholder-input{height:30px}.core-dropdown-container input.search:focus{outline:none}\n"] }]
|
|
21113
21316
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: DomService }, { type: AlertService }, { type: MultiLanguageService }, { type: i0.ChangeDetectorRef }, { type: AppService }], propDecorators: { getByIdObject$: [{
|
|
@@ -25750,7 +25953,7 @@ class CoreFormArrayComponent extends CoreFormControlBaseComponent {
|
|
|
25750
25953
|
if (changes['formArray'] && this.formArray) {
|
|
25751
25954
|
console.log('✅ formArray ready:', this.formArray);
|
|
25752
25955
|
// Only add 1 blank row when creating new
|
|
25753
|
-
const isAddNew = this.addNewMode
|
|
25956
|
+
const isAddNew = !!this.addNewMode$?.value;
|
|
25754
25957
|
const hasExistingData = !!this.parentFormGroup
|
|
25755
25958
|
.getRawValue()?.[this.formArrayName]?.length;
|
|
25756
25959
|
if (isAddNew && !hasExistingData && this.formArray.length === 0) {
|
|
@@ -31680,7 +31883,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
31680
31883
|
const hrmSchemaRoutes = [
|
|
31681
31884
|
{
|
|
31682
31885
|
path: '',
|
|
31683
|
-
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-
|
|
31886
|
+
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-Bd3CdbC_.mjs').then(m => m.HrmSchemaComponent)
|
|
31684
31887
|
}
|
|
31685
31888
|
];
|
|
31686
31889
|
|
|
@@ -33853,7 +34056,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
33853
34056
|
const simpleChatRoutes = [
|
|
33854
34057
|
{
|
|
33855
34058
|
path: '',
|
|
33856
|
-
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-
|
|
34059
|
+
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-Bijz8uoH.mjs').then(m => m.SimpleChatComponent)
|
|
33857
34060
|
}
|
|
33858
34061
|
];
|
|
33859
34062
|
|
|
@@ -34161,7 +34364,7 @@ class SysOtherListEditComponent extends BaseEditComponent /*implements AfterView
|
|
|
34161
34364
|
optionTextFrom: 'name',
|
|
34162
34365
|
//dropdownOptions$: this.typeOptions$,
|
|
34163
34366
|
getByIdObject$: new BehaviorSubject(undefined),
|
|
34164
|
-
|
|
34367
|
+
getByIdApi: this.typeGetByIdApi,
|
|
34165
34368
|
shownFrom: 'name',
|
|
34166
34369
|
type: 'text',
|
|
34167
34370
|
validators: [
|
|
@@ -34519,7 +34722,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
34519
34722
|
const coreSysActionRoutes = [
|
|
34520
34723
|
{
|
|
34521
34724
|
path: "",
|
|
34522
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-sys-action.component-
|
|
34725
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-sys-action.component-C_VAQLOE.mjs').then(m => m.CoreSysActionComponent),
|
|
34523
34726
|
children: [
|
|
34524
34727
|
{
|
|
34525
34728
|
path: ":id",
|
|
@@ -38223,11 +38426,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
38223
38426
|
const coreDocGenRoutes = [
|
|
38224
38427
|
{
|
|
38225
38428
|
path: 'template-list',
|
|
38226
|
-
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-
|
|
38429
|
+
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-CKNXhE7n.mjs').then(m => m.TemplateListComponent),
|
|
38227
38430
|
},
|
|
38228
38431
|
{
|
|
38229
38432
|
path: ":id",
|
|
38230
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-
|
|
38433
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-DmTad7AG.mjs').then(m => m.CoreTemplateEditorComponent),
|
|
38231
38434
|
canDeactivate: [CanDeactivateGuard]
|
|
38232
38435
|
},
|
|
38233
38436
|
{
|
|
@@ -38256,7 +38459,7 @@ const coreFormDesignRoutes = [
|
|
|
38256
38459
|
},
|
|
38257
38460
|
{
|
|
38258
38461
|
path: ':id',
|
|
38259
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-
|
|
38462
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-BZvtwXkM.mjs').then(m => m.CoreFormDesignComponent)
|
|
38260
38463
|
}
|
|
38261
38464
|
];
|
|
38262
38465
|
|
|
@@ -39167,7 +39370,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
39167
39370
|
const coreNavigationTrackerRoutes = [
|
|
39168
39371
|
{
|
|
39169
39372
|
path: '',
|
|
39170
|
-
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-
|
|
39373
|
+
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-BLFeI6xO.mjs').then(m => m.TrackerStudioComponent)
|
|
39171
39374
|
}
|
|
39172
39375
|
];
|
|
39173
39376
|
|
|
@@ -39220,6 +39423,9 @@ class CoreOrgTreeState {
|
|
|
39220
39423
|
}
|
|
39221
39424
|
|
|
39222
39425
|
class CoreOrgchartflexComponent {
|
|
39426
|
+
togglePanel() {
|
|
39427
|
+
this.$isCollapsed.update(v => !v);
|
|
39428
|
+
}
|
|
39223
39429
|
startDragging(e, flag) {
|
|
39224
39430
|
this.$mouseDown.set(true);
|
|
39225
39431
|
this.$startX.set(e.pageX - this.$parent()?.nativeElement.offsetLeft);
|
|
@@ -39249,6 +39455,8 @@ class CoreOrgchartflexComponent {
|
|
|
39249
39455
|
this.$showDissolved = input();
|
|
39250
39456
|
this.$width = input();
|
|
39251
39457
|
this.$height = input();
|
|
39458
|
+
this.$showOrgTree = input(true);
|
|
39459
|
+
this.$orgTreeWidth = input(320);
|
|
39252
39460
|
this.$connectionColor = input();
|
|
39253
39461
|
this.$connectionSize = input(); // in pixel
|
|
39254
39462
|
this.$fromChildrenToTopLine = input(); // in pixel
|
|
@@ -39259,6 +39467,7 @@ class CoreOrgchartflexComponent {
|
|
|
39259
39467
|
this.printFlag$ = new BehaviorSubject(false);
|
|
39260
39468
|
this.printing$ = new BehaviorSubject(false);
|
|
39261
39469
|
this.onPrintAreaRendered = new EventEmitter();
|
|
39470
|
+
this.$internalData = signal([]);
|
|
39262
39471
|
this.$container = viewChild('container');
|
|
39263
39472
|
this.$parent = viewChild('parent');
|
|
39264
39473
|
this.$printArea = viewChild('printArea');
|
|
@@ -39269,7 +39478,9 @@ class CoreOrgchartflexComponent {
|
|
|
39269
39478
|
this.$scrollTop = signal(undefined);
|
|
39270
39479
|
this.$scale = signal(1);
|
|
39271
39480
|
this.cdr = inject(ChangeDetectorRef);
|
|
39481
|
+
this.$isCollapsed = signal(false);
|
|
39272
39482
|
this.destroyRef = inject(DestroyRef);
|
|
39483
|
+
effect(() => this.$internalData.update(_ => this.$data()));
|
|
39273
39484
|
}
|
|
39274
39485
|
ngOnInit() {
|
|
39275
39486
|
this.printFlag$
|
|
@@ -39277,9 +39488,6 @@ class CoreOrgchartflexComponent {
|
|
|
39277
39488
|
takeUntilDestroyed(this.destroyRef))
|
|
39278
39489
|
.subscribe(async () => {
|
|
39279
39490
|
this.printing$.next(true);
|
|
39280
|
-
//await this.exportOrgChartAtomic();
|
|
39281
|
-
//await this.exportOrgChartOnePage();
|
|
39282
|
-
//await this.exportOrgChartAutoFit();
|
|
39283
39491
|
await this.exportOrgChartPro();
|
|
39284
39492
|
this.printing$.next(false);
|
|
39285
39493
|
});
|
|
@@ -39323,15 +39531,15 @@ class CoreOrgchartflexComponent {
|
|
|
39323
39531
|
toggleExpand(e) {
|
|
39324
39532
|
e.tree$Expanded = !!!e.tree$Expanded;
|
|
39325
39533
|
}
|
|
39326
|
-
|
|
39534
|
+
zoomIn() {
|
|
39327
39535
|
this.$scale.set(this.$scale() * 1.1);
|
|
39328
39536
|
this.$container().nativeElement.style.setProperty('--print-area-scale', this.$scale());
|
|
39329
39537
|
}
|
|
39330
|
-
|
|
39538
|
+
zoomOut() {
|
|
39331
39539
|
this.$scale.set(this.$scale() / 1.1);
|
|
39332
39540
|
this.$container().nativeElement.style.setProperty('--print-area-scale', this.$scale());
|
|
39333
39541
|
}
|
|
39334
|
-
|
|
39542
|
+
zoomFeat() {
|
|
39335
39543
|
this.$scale.set(1);
|
|
39336
39544
|
this.$container().nativeElement.style.setProperty('--print-area-scale', this.$scale());
|
|
39337
39545
|
}
|
|
@@ -39369,233 +39577,6 @@ class CoreOrgchartflexComponent {
|
|
|
39369
39577
|
}
|
|
39370
39578
|
}));
|
|
39371
39579
|
}
|
|
39372
|
-
// async exportOrgChartAtomic(): Promise<void> {
|
|
39373
|
-
// const container = this.$container()?.nativeElement as HTMLElement;
|
|
39374
|
-
// const printArea = this.$printArea()?.nativeElement as HTMLElement;
|
|
39375
|
-
// if (!printArea) return;
|
|
39376
|
-
// // 🩺 1️⃣ Normalize zoom + disable transitions
|
|
39377
|
-
// const oldScale = getComputedStyle(container).getPropertyValue('--print-area-scale');
|
|
39378
|
-
// container.style.setProperty('--print-area-scale', '1');
|
|
39379
|
-
// const oldTransform = printArea.style.transform;
|
|
39380
|
-
// printArea.style.transform = 'none';
|
|
39381
|
-
// printArea.querySelectorAll('*').forEach(el => {
|
|
39382
|
-
// (el as HTMLElement).style.animation = 'none';
|
|
39383
|
-
// (el as HTMLElement).style.transition = 'none';
|
|
39384
|
-
// });
|
|
39385
|
-
// // 🧭 2️⃣ Wait for & heal all <img> elements
|
|
39386
|
-
// const imgs = Array.from(printArea.querySelectorAll('img')) as HTMLImageElement[];
|
|
39387
|
-
// await Promise.all(
|
|
39388
|
-
// imgs.map(img =>
|
|
39389
|
-
// img.complete ? Promise.resolve() : new Promise(res => (img.onload = img.onerror = res))
|
|
39390
|
-
// )
|
|
39391
|
-
// );
|
|
39392
|
-
// for (const img of imgs) {
|
|
39393
|
-
// if (img.src.startsWith('data:')) continue;
|
|
39394
|
-
// try {
|
|
39395
|
-
// const resp = await fetch(img.src, { mode: 'cors' });
|
|
39396
|
-
// const blob = await resp.blob();
|
|
39397
|
-
// const reader = new FileReader();
|
|
39398
|
-
// await new Promise<void>(res => {
|
|
39399
|
-
// reader.onload = () => {
|
|
39400
|
-
// img.src = reader.result as string;
|
|
39401
|
-
// res();
|
|
39402
|
-
// };
|
|
39403
|
-
// reader.readAsDataURL(blob);
|
|
39404
|
-
// });
|
|
39405
|
-
// } catch { /* skip broken images */ }
|
|
39406
|
-
// }
|
|
39407
|
-
// // 📐 3️⃣ Compute true bounding box (atomic crop)
|
|
39408
|
-
// const allNodes = Array.from(printArea.querySelectorAll('.tree, .tree *')) as HTMLElement[];
|
|
39409
|
-
// const boxes = allNodes.map(n => n.getBoundingClientRect());
|
|
39410
|
-
// const minX = Math.min(...boxes.map(b => b.left));
|
|
39411
|
-
// const minY = Math.min(...boxes.map(b => b.top));
|
|
39412
|
-
// const maxX = Math.max(...boxes.map(b => b.right));
|
|
39413
|
-
// const maxY = Math.max(...boxes.map(b => b.bottom));
|
|
39414
|
-
// const chartW = Math.ceil(maxX - minX);
|
|
39415
|
-
// const chartH = Math.ceil(maxY - minY);
|
|
39416
|
-
// // 🧩 Offsets inside the printArea (viewport → local)
|
|
39417
|
-
// const areaRect = printArea.getBoundingClientRect();
|
|
39418
|
-
// const offsetX = Math.max(0, minX - areaRect.left);
|
|
39419
|
-
// const offsetY = Math.max(0, minY - areaRect.top);
|
|
39420
|
-
// // 🖼️ 4️⃣ Capture exact region only
|
|
39421
|
-
// const canvas = await html2canvas(printArea, {
|
|
39422
|
-
// backgroundColor: '#ffffff',
|
|
39423
|
-
// scale: 3,
|
|
39424
|
-
// useCORS: true,
|
|
39425
|
-
// x: offsetX,
|
|
39426
|
-
// y: offsetY,
|
|
39427
|
-
// width: chartW,
|
|
39428
|
-
// height: chartH,
|
|
39429
|
-
// windowWidth: Math.max(chartW, printArea.scrollWidth),
|
|
39430
|
-
// windowHeight: Math.max(chartH, printArea.scrollHeight),
|
|
39431
|
-
// logging: false,
|
|
39432
|
-
// });
|
|
39433
|
-
// // restore styles
|
|
39434
|
-
// container.style.setProperty('--print-area-scale', oldScale);
|
|
39435
|
-
// printArea.style.transform = oldTransform;
|
|
39436
|
-
// // 🧾 5️⃣ Export the result
|
|
39437
|
-
// const dataUrl = canvas.toDataURL('image/png');
|
|
39438
|
-
// const allStyles = Array.from(document.querySelectorAll('style,link[rel="stylesheet"]'))
|
|
39439
|
-
// .map(s => s.outerHTML)
|
|
39440
|
-
// .join('\n');
|
|
39441
|
-
// // 🪟 6️⃣ Dynamic preview / print window
|
|
39442
|
-
// const popupW = Math.min(chartW * 0.5, screen.availWidth - 100);
|
|
39443
|
-
// const popupH = Math.min(chartH * 0.5, screen.availHeight - 100);
|
|
39444
|
-
// const printWindow = window.open('', '', `width=${popupW},height=${popupH},resizable=yes`);
|
|
39445
|
-
// const css = `
|
|
39446
|
-
// <style>
|
|
39447
|
-
// @page { size: ${chartW}px ${chartH}px; margin: 0; }
|
|
39448
|
-
// html, body {
|
|
39449
|
-
// margin: 0; padding: 0;
|
|
39450
|
-
// width: 100%; height: 100%;
|
|
39451
|
-
// background: white;
|
|
39452
|
-
// display: flex; align-items: center; justify-content: center;
|
|
39453
|
-
// }
|
|
39454
|
-
// img {
|
|
39455
|
-
// width: ${chartW}px;
|
|
39456
|
-
// height: ${chartH}px;
|
|
39457
|
-
// object-fit: contain;
|
|
39458
|
-
// }
|
|
39459
|
-
// </style>
|
|
39460
|
-
// `;
|
|
39461
|
-
// printWindow!.document.write(`
|
|
39462
|
-
// <html><head>${allStyles}${css}</head>
|
|
39463
|
-
// <body><img src="${dataUrl}" /></body></html>
|
|
39464
|
-
// `);
|
|
39465
|
-
// printWindow!.document.close();
|
|
39466
|
-
// printWindow!.addEventListener('load', () => {
|
|
39467
|
-
// printWindow!.focus();
|
|
39468
|
-
// printWindow!.print();
|
|
39469
|
-
// });
|
|
39470
|
-
// }
|
|
39471
|
-
// async exportOrgChartAtomic(): Promise<void> {
|
|
39472
|
-
// this.printing$.next(true);
|
|
39473
|
-
// const container = this.$container()?.nativeElement as HTMLElement;
|
|
39474
|
-
// const printArea = this.$printArea()?.nativeElement as HTMLElement;
|
|
39475
|
-
// if (!printArea) return;
|
|
39476
|
-
// const canvas = await html2canvas(printArea, {
|
|
39477
|
-
// backgroundColor: '#ffffff',
|
|
39478
|
-
// scale: 3,
|
|
39479
|
-
// useCORS: true,
|
|
39480
|
-
// });
|
|
39481
|
-
// const dataUrl = canvas.toDataURL('image/png');
|
|
39482
|
-
// const imgWidth = 210; // A4 width in mm
|
|
39483
|
-
// const pageHeight = 297; // A4 height in mm
|
|
39484
|
-
// const imgHeight = (canvas.height * imgWidth) / canvas.width;
|
|
39485
|
-
// const { jsPDF } = jspdf; // ✅ Destructure the jsPDF class
|
|
39486
|
-
// const pdf = new jsPDF('p', 'mm', 'a4'); // ✅ Proper instantiation
|
|
39487
|
-
// // Scale to fit within A4 page
|
|
39488
|
-
// let position = 0;
|
|
39489
|
-
// if (imgHeight > pageHeight) {
|
|
39490
|
-
// // Multi-page logic
|
|
39491
|
-
// let remainingHeight = imgHeight;
|
|
39492
|
-
// while (remainingHeight > 0) {
|
|
39493
|
-
// pdf.addImage(dataUrl, 'PNG', 0, position, imgWidth, imgHeight);
|
|
39494
|
-
// remainingHeight -= pageHeight;
|
|
39495
|
-
// if (remainingHeight > 0) {
|
|
39496
|
-
// pdf.addPage();
|
|
39497
|
-
// position = 0;
|
|
39498
|
-
// }
|
|
39499
|
-
// }
|
|
39500
|
-
// } else {
|
|
39501
|
-
// pdf.addImage(dataUrl, 'PNG', 0, 0, imgWidth, imgHeight);
|
|
39502
|
-
// }
|
|
39503
|
-
// pdf.save('OrgChart.pdf');
|
|
39504
|
-
// this.printing$.next(false);
|
|
39505
|
-
// }
|
|
39506
|
-
// async exportOrgChartOnePage(): Promise<void> {
|
|
39507
|
-
// const container = this.$container()?.nativeElement as HTMLElement;
|
|
39508
|
-
// const printArea = this.$printArea()?.nativeElement as HTMLElement;
|
|
39509
|
-
// if (!printArea) return;
|
|
39510
|
-
// // 🧭 1️⃣ Get all nodes inside `.tree`
|
|
39511
|
-
// const allNodes = Array.from(printArea.querySelectorAll('.tree, .tree *')) as HTMLElement[];
|
|
39512
|
-
// const boxes = allNodes.map(n => n.getBoundingClientRect());
|
|
39513
|
-
// const minX = Math.min(...boxes.map(b => b.left));
|
|
39514
|
-
// const minY = Math.min(...boxes.map(b => b.top));
|
|
39515
|
-
// const maxX = Math.max(...boxes.map(b => b.right));
|
|
39516
|
-
// const maxY = Math.max(...boxes.map(b => b.bottom));
|
|
39517
|
-
// const chartW = Math.ceil(maxX - minX);
|
|
39518
|
-
// const chartH = Math.ceil(maxY - minY);
|
|
39519
|
-
// const areaRect = printArea.getBoundingClientRect();
|
|
39520
|
-
// const offsetX = Math.max(0, minX - areaRect.left);
|
|
39521
|
-
// const offsetY = Math.max(0, minY - areaRect.top);
|
|
39522
|
-
// // 🖼️ 2️⃣ Capture cropped canvas
|
|
39523
|
-
// const canvas = await html2canvas(printArea, {
|
|
39524
|
-
// backgroundColor: '#fff',
|
|
39525
|
-
// scale: 3,
|
|
39526
|
-
// useCORS: true,
|
|
39527
|
-
// x: offsetX,
|
|
39528
|
-
// y: offsetY,
|
|
39529
|
-
// width: chartW,
|
|
39530
|
-
// height: chartH,
|
|
39531
|
-
// });
|
|
39532
|
-
// // 🧮 3️⃣ Convert to PNG + fit to A4 ratio
|
|
39533
|
-
// const dataUrl = canvas.toDataURL('image/png');
|
|
39534
|
-
// const { jsPDF } = jspdf;
|
|
39535
|
-
// const pdf = new jsPDF('l', 'mm', 'a4'); // landscape
|
|
39536
|
-
// const pageW = pdf.internal.pageSize.getWidth();
|
|
39537
|
-
// const pageH = pdf.internal.pageSize.getHeight();
|
|
39538
|
-
// const imgRatio = chartW / chartH;
|
|
39539
|
-
// const pageRatio = pageW / pageH;
|
|
39540
|
-
// let imgW = pageW, imgH = pageH;
|
|
39541
|
-
// if (imgRatio > pageRatio) imgH = pageW / imgRatio;
|
|
39542
|
-
// else imgW = pageH * imgRatio;
|
|
39543
|
-
// const posX = (pageW - imgW) / 2;
|
|
39544
|
-
// const posY = (pageH - imgH) / 2;
|
|
39545
|
-
// // 🪄 4️⃣ Add to PDF centered and scaled
|
|
39546
|
-
// pdf.addImage(dataUrl, 'PNG', posX, posY, imgW, imgH);
|
|
39547
|
-
// pdf.save('OrgChart-OnePage.pdf');
|
|
39548
|
-
// }
|
|
39549
|
-
// async exportOrgChartAutoFit(): Promise<void> {
|
|
39550
|
-
// if (!this.$container()?.nativeElement) return;
|
|
39551
|
-
// this.$container()!.nativeElement.style.setProperty('--print-area-scale', 1);
|
|
39552
|
-
// const container = this.$container()?.nativeElement as HTMLElement;
|
|
39553
|
-
// const printArea = this.$printArea()?.nativeElement as HTMLElement;
|
|
39554
|
-
// if (!printArea) return;
|
|
39555
|
-
// // 🧭 1️⃣ Determine bounding box of all .tree nodes
|
|
39556
|
-
// const allNodes = Array.from(printArea.querySelectorAll('.tree, .tree *')) as HTMLElement[];
|
|
39557
|
-
// const boxes = allNodes.map(n => n.getBoundingClientRect());
|
|
39558
|
-
// const minX = Math.min(...boxes.map(b => b.left));
|
|
39559
|
-
// const minY = Math.min(...boxes.map(b => b.top));
|
|
39560
|
-
// const maxX = Math.max(...boxes.map(b => b.right));
|
|
39561
|
-
// const maxY = Math.max(...boxes.map(b => b.bottom));
|
|
39562
|
-
// const chartW = Math.ceil(maxX - minX);
|
|
39563
|
-
// const chartH = Math.ceil(maxY - minY);
|
|
39564
|
-
// const areaRect = printArea.getBoundingClientRect();
|
|
39565
|
-
// const offsetX = Math.max(0, minX - areaRect.left);
|
|
39566
|
-
// const offsetY = Math.max(0, minY - areaRect.top);
|
|
39567
|
-
// await this.healImagesForCanvas(printArea);
|
|
39568
|
-
// // 🖼️ 2️⃣ Render cropped region only
|
|
39569
|
-
// const canvas = await html2canvas(printArea, {
|
|
39570
|
-
// backgroundColor: '#ffffff',
|
|
39571
|
-
// scale: 3,
|
|
39572
|
-
// useCORS: true,
|
|
39573
|
-
// x: offsetX,
|
|
39574
|
-
// y: offsetY,
|
|
39575
|
-
// width: chartW,
|
|
39576
|
-
// height: chartH,
|
|
39577
|
-
// });
|
|
39578
|
-
// const dataUrl = canvas.toDataURL('image/png');
|
|
39579
|
-
// // 📐 3️⃣ Decide PDF orientation dynamically
|
|
39580
|
-
// const chartRatio = chartW / chartH;
|
|
39581
|
-
// const a4Ratio = 210 / 297; // portrait A4
|
|
39582
|
-
// const orientation = chartRatio > a4Ratio ? 'l' : 'p'; // landscape if wider
|
|
39583
|
-
// const { jsPDF } = jspdf;
|
|
39584
|
-
// const pdf = new jsPDF(orientation, 'mm', 'a4');
|
|
39585
|
-
// // 🧩 4️⃣ Compute image placement for best fit
|
|
39586
|
-
// const pageW = pdf.internal.pageSize.getWidth();
|
|
39587
|
-
// const pageH = pdf.internal.pageSize.getHeight();
|
|
39588
|
-
// const imgRatio = chartW / chartH;
|
|
39589
|
-
// const pageRatio = pageW / pageH;
|
|
39590
|
-
// let imgW = pageW, imgH = pageH;
|
|
39591
|
-
// if (imgRatio > pageRatio) imgH = pageW / imgRatio;
|
|
39592
|
-
// else imgW = pageH * imgRatio;
|
|
39593
|
-
// const posX = (pageW - imgW) / 2;
|
|
39594
|
-
// const posY = (pageH - imgH) / 2;
|
|
39595
|
-
// // 🪄 5️⃣ Add image to PDF centered
|
|
39596
|
-
// pdf.addImage(dataUrl, 'PNG', posX, posY, imgW, imgH);
|
|
39597
|
-
// pdf.save('OrgChart-AutoFit.pdf');
|
|
39598
|
-
// }
|
|
39599
39580
|
async exportOrgChartPro() {
|
|
39600
39581
|
const container = this.$container()?.nativeElement;
|
|
39601
39582
|
const printArea = this.$printArea()?.nativeElement;
|
|
@@ -39690,7 +39671,7 @@ class CoreOrgchartflexComponent {
|
|
|
39690
39671
|
//window.open(pdf.output('bloburl'), '_blank');
|
|
39691
39672
|
}
|
|
39692
39673
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreOrgchartflexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39693
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreOrgchartflexComponent, isStandalone: true, selector: "core-orgchartflex", inputs: { $data: { classPropertyName: "$data", publicName: "$data", isSignal: true, isRequired: true, transformFunction: null }, $itemTemplate: { classPropertyName: "$itemTemplate", publicName: "$itemTemplate", isSignal: true, isRequired: true, transformFunction: null }, $compactMode: { classPropertyName: "$compactMode", publicName: "$compactMode", isSignal: true, isRequired: false, transformFunction: null }, $showDissolved: { classPropertyName: "$showDissolved", publicName: "$showDissolved", isSignal: true, isRequired: false, transformFunction: null }, $width: { classPropertyName: "$width", publicName: "$width", isSignal: true, isRequired: false, transformFunction: null }, $height: { classPropertyName: "$height", publicName: "$height", isSignal: true, isRequired: false, transformFunction: null }, $connectionColor: { classPropertyName: "$connectionColor", publicName: "$connectionColor", isSignal: true, isRequired: false, transformFunction: null }, $connectionSize: { classPropertyName: "$connectionSize", publicName: "$connectionSize", isSignal: true, isRequired: false, transformFunction: null }, $fromChildrenToTopLine: { classPropertyName: "$fromChildrenToTopLine", publicName: "$fromChildrenToTopLine", isSignal: true, isRequired: false, transformFunction: null }, $fromParentToChildrenTopLine: { classPropertyName: "$fromParentToChildrenTopLine", publicName: "$fromParentToChildrenTopLine", isSignal: true, isRequired: false, transformFunction: null }, $childrenHorizontalMargin: { classPropertyName: "$childrenHorizontalMargin", publicName: "$childrenHorizontalMargin", isSignal: true, isRequired: false, transformFunction: null }, $childrenBorderSize: { classPropertyName: "$childrenBorderSize", publicName: "$childrenBorderSize", isSignal: true, isRequired: false, transformFunction: null }, $childrenBorderColor: { classPropertyName: "$childrenBorderColor", publicName: "$childrenBorderColor", isSignal: true, isRequired: false, transformFunction: null }, printFlag$: { classPropertyName: "printFlag$", publicName: "printFlag$", isSignal: false, isRequired: false, transformFunction: null }, printing$: { classPropertyName: "printing$", publicName: "printing$", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onPrintAreaRendered: "onPrintAreaRendered" }, viewQueries: [{ propertyName: "$container", first: true, predicate: ["container"], descendants: true, isSignal: true }, { propertyName: "$parent", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "$printArea", first: true, predicate: ["printArea"], descendants: true, isSignal: true }], ngImport: i0, template: "<div #container class=\"core-orgchartflex-container\" (mousedown)=\"startDragging($event, false)\"\r\n (mouseup)=\"stopDragging($event, false)\" (mouseleave)=\"stopDragging($event, false)\" (mousemove)=\"moveEvent($event)\">\r\n\r\n <div class=\"scroll-container\" #parent\r\n [ngStyle]=\"{ cursor: $mouseDown() ? 'all-scroll' : 'unset', width: $width() + 'px', height: $height() + 'px' }\">\r\n\r\n <div class=\"zoom-control p-absolute\">\r\n <div class=\"p-relative d-flex d-flex-start\">\r\n <i class=\"feather-minus-circle pointer\" (click)=\"zoonOut()\"></i>\r\n <i class=\"feather-plus-circle pointer\" (click)=\"zoonIn()\"></i>\r\n <i class=\"feather-monitor pointer\" (click)=\"zoonFeat()\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"print-area\" #printArea>\r\n\r\n @for (root of $data(); track $index) {\r\n <ul class=\"tree\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root}\"></ng-container>\r\n </ul>\r\n }\r\n\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-title=\"context.tree$Title\" let-expanded=\"context.tree$Expanded\"\r\n let-children=\"context.tree$Children\" let-tier=\"context.tree$Tier\" let-isActive=\"context.isActive\">\r\n @if ((!$showDissolved() && !!isActive) || (!!$showDissolved())) {\r\n <li>\r\n @if ($compactMode()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.compact]=\"tier !== 1\"\r\n [class.expanded]=\"expanded\">\r\n {{ title }}\r\n </span>\r\n }\r\n\r\n <!-- When passing item template and compactMode=false-->\r\n @if (!$compactMode() && !!$itemTemplate()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.expanded]=\"expanded\">\r\n <ng-container *ngTemplateOutlet=\"$itemTemplate(); context: { item: context } \"></ng-container>\r\n </span>\r\n }\r\n <!-- ------------------------- -->\r\n\r\n @if (!!expanded && !!children.length) {\r\n <ul>\r\n @for (child of children; track $index) {\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child}\"></ng-container>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n\r\n </div>\r\n\r\n @if (printing$ | async) {\r\n <app-fullscreen-modal-loader />\r\n }\r\n\r\n <!-- <button class=\"btn btn-outline-danger\" (click)=\"highlightChartRect()\">\r\n Highlight Export Area\r\n </button>\r\n <button class=\"btn btn-outline-danger\" (click)=\"clearChartHighlight()\">\r\n Clear Export Area\r\n </button> -->\r\n\r\n</div>", styles: [".core-orgchartflex-container{--width: 100px;--height: 100px;--link-color: cadetblue;--print-area-scale: 1;--connection-color: gray;--connection-size: 1px;--from-children-to-top-line: 100px;--from-parent-to-children-top-line: 100px;--children-horizontal-margin: 5px;--children-border-size: 1px;--children-border-color: gray}@keyframes fadeIn{0%{transform:scale(0)}to{transform:scale(1)}}.core-orgchartflex-container *{animation:fadeIn .5s ease-in-out}.core-orgchartflex-container .scroll-container{display:block;width:var(--width);height:var(--height);overflow-x:auto}.core-orgchartflex-container .scroll-container .zoom-control{top:var(--size-layout-block-cell-spacing);right:var(--size-layout-block-cell-spacing);z-index:3}.core-orgchartflex-container .scroll-container .zoom-control i{font-size:16px;color:#848484}.core-orgchartflex-container .scroll-container .print-area{transform:scale(var(--print-area-scale));transition:.5s linear}.core-orgchartflex-container .scroll-container .tree *{box-sizing:border-box}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul,.core-orgchartflex-container .scroll-container .tree li{list-style:none;margin:0;padding:0;position:relative}.core-orgchartflex-container .scroll-container .tree{margin:0 0 1em;text-align:center}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul{display:table}.core-orgchartflex-container .scroll-container .tree ul{width:100%}.core-orgchartflex-container .scroll-container .tree li{display:table-cell;padding:var(--from-children-to-top-line) 0;vertical-align:top!important}.core-orgchartflex-container .scroll-container .tree li:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";left:0;position:absolute;right:0;top:0}.core-orgchartflex-container .scroll-container .tree li:first-child:before{left:50%}.core-orgchartflex-container .scroll-container .tree li:last-child:before{right:50%}.core-orgchartflex-container .scroll-container .tree code,.core-orgchartflex-container .scroll-container .tree span{border:solid var(--children-border-size) var(--children-border-color);display:inline-block;margin:0 var(--children-horizontal-margin) var(--from-parent-to-children-top-line);position:relative}.core-orgchartflex-container .scroll-container .tree span.compact{max-width:75px}.core-orgchartflex-container .scroll-container .tree ul:before,.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";height:calc(var(--from-children-to-top-line) - var(--connection-size));left:50%;position:absolute}.core-orgchartflex-container .scroll-container .tree ul:before{top:calc(var(--from-parent-to-children-top-line) * -1 + var(--connection-size) / 2);height:calc(var(--from-parent-to-children-top-line) - var(--connection-size) * 1.5 + 1px)}.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{top:calc(var(--from-children-to-top-line) * -1 + var(--connection-size) / 2 - var(--children-border-size))}.core-orgchartflex-container .scroll-container .tree>li{margin-top:0}.core-orgchartflex-container .scroll-container .tree>li:before,.core-orgchartflex-container .scroll-container .tree>li:after,.core-orgchartflex-container .scroll-container .tree>li>code:before,.core-orgchartflex-container .scroll-container .tree>li>span:before{outline:none}.core-orgchartflex-container .scroll-container a{text-decoration:unset;color:var(--link-color)!important}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39674
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreOrgchartflexComponent, isStandalone: true, selector: "core-orgchartflex", inputs: { $data: { classPropertyName: "$data", publicName: "$data", isSignal: true, isRequired: true, transformFunction: null }, $itemTemplate: { classPropertyName: "$itemTemplate", publicName: "$itemTemplate", isSignal: true, isRequired: true, transformFunction: null }, $compactMode: { classPropertyName: "$compactMode", publicName: "$compactMode", isSignal: true, isRequired: false, transformFunction: null }, $showDissolved: { classPropertyName: "$showDissolved", publicName: "$showDissolved", isSignal: true, isRequired: false, transformFunction: null }, $width: { classPropertyName: "$width", publicName: "$width", isSignal: true, isRequired: false, transformFunction: null }, $height: { classPropertyName: "$height", publicName: "$height", isSignal: true, isRequired: false, transformFunction: null }, $showOrgTree: { classPropertyName: "$showOrgTree", publicName: "$showOrgTree", isSignal: true, isRequired: false, transformFunction: null }, $orgTreeWidth: { classPropertyName: "$orgTreeWidth", publicName: "$orgTreeWidth", isSignal: true, isRequired: false, transformFunction: null }, $connectionColor: { classPropertyName: "$connectionColor", publicName: "$connectionColor", isSignal: true, isRequired: false, transformFunction: null }, $connectionSize: { classPropertyName: "$connectionSize", publicName: "$connectionSize", isSignal: true, isRequired: false, transformFunction: null }, $fromChildrenToTopLine: { classPropertyName: "$fromChildrenToTopLine", publicName: "$fromChildrenToTopLine", isSignal: true, isRequired: false, transformFunction: null }, $fromParentToChildrenTopLine: { classPropertyName: "$fromParentToChildrenTopLine", publicName: "$fromParentToChildrenTopLine", isSignal: true, isRequired: false, transformFunction: null }, $childrenHorizontalMargin: { classPropertyName: "$childrenHorizontalMargin", publicName: "$childrenHorizontalMargin", isSignal: true, isRequired: false, transformFunction: null }, $childrenBorderSize: { classPropertyName: "$childrenBorderSize", publicName: "$childrenBorderSize", isSignal: true, isRequired: false, transformFunction: null }, $childrenBorderColor: { classPropertyName: "$childrenBorderColor", publicName: "$childrenBorderColor", isSignal: true, isRequired: false, transformFunction: null }, printFlag$: { classPropertyName: "printFlag$", publicName: "printFlag$", isSignal: false, isRequired: false, transformFunction: null }, printing$: { classPropertyName: "printing$", publicName: "printing$", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onPrintAreaRendered: "onPrintAreaRendered" }, viewQueries: [{ propertyName: "$container", first: true, predicate: ["container"], descendants: true, isSignal: true }, { propertyName: "$parent", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "$printArea", first: true, predicate: ["printArea"], descendants: true, isSignal: true }], ngImport: i0, template: "<div #container class=\"core-orgchartflex-container\" [class.left-right]=\"!!$showOrgTree()\" (mousedown)=\"startDragging($event, false)\"\r\n (mouseup)=\"stopDragging($event, false)\" (mouseleave)=\"stopDragging($event, false)\" (mousemove)=\"moveEvent($event)\">\r\n\r\n @if (!!$showOrgTree()) {\r\n <div class=\"org-tree-wrapper\" [class.collapsed]=\"$isCollapsed()\">\r\n <core-org-tree [accessorMode]=\"'ACTIVATED_SINGLE'\"/>\r\n <div class=\"collapse-toggle\" (click)=\"togglePanel()\">\r\n @if (!$isCollapsed()) {\r\n <i class=\"feather-chevron-left\" ></i>\r\n }\r\n @if ($isCollapsed()) {\r\n <i class=\"feather-chevron-right\"></i>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"scroll-container\" #parent\r\n [ngStyle]=\"{ cursor: $mouseDown() ? 'all-scroll' : 'unset', width: $width() + 'px', height: $height() + 'px' }\">\r\n\r\n <div class=\"zoom-control p-absolute\">\r\n <div class=\"p-relative d-flex d-flex-start\">\r\n <i class=\"feather-minus-circle pointer\" (click)=\"zoomOut()\"></i>\r\n <i class=\"feather-plus-circle pointer\" (click)=\"zoomIn()\"></i>\r\n <i class=\"feather-monitor pointer\" (click)=\"zoomFeat()\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"print-area\" #printArea>\r\n\r\n @for (root of $internalData(); track $index) {\r\n <ul class=\"tree\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root}\"></ng-container>\r\n </ul>\r\n }\r\n\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-title=\"context.tree$Title\" let-expanded=\"context.tree$Expanded\"\r\n let-children=\"context.tree$Children\" let-tier=\"context.tree$Tier\" let-isActive=\"context.isActive\">\r\n @if ((!$showDissolved() && !!isActive) || (!!$showDissolved())) {\r\n <li>\r\n @if ($compactMode()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.compact]=\"tier !== 1\"\r\n [class.expanded]=\"expanded\">\r\n {{ title }}\r\n </span>\r\n }\r\n\r\n <!-- When passing item template and compactMode=false-->\r\n @if (!$compactMode() && !!$itemTemplate()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.expanded]=\"expanded\">\r\n <ng-container *ngTemplateOutlet=\"$itemTemplate(); context: { item: context } \"></ng-container>\r\n </span>\r\n }\r\n <!-- ------------------------- -->\r\n\r\n @if (!!expanded && !!children.length) {\r\n <ul>\r\n @for (child of children; track $index) {\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child}\"></ng-container>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n\r\n </div>\r\n\r\n @if (printing$ | async) {\r\n <app-fullscreen-modal-loader />\r\n }\r\n\r\n</div>", styles: [".core-orgchartflex-container{--width: 100px;--height: 100px;--link-color: cadetblue;--print-area-scale: 1;--connection-color: gray;--connection-size: 1px;--from-children-to-top-line: 100px;--from-parent-to-children-top-line: 100px;--children-horizontal-margin: 5px;--children-border-size: 1px;--children-border-color: gray;--org-tree-width: 320px;--org-tree-collapsed-width: 24px}@keyframes fadeIn{0%{transform:scale(0)}to{transform:scale(1)}}.core-orgchartflex-container *{animation:fadeIn .5s ease-in-out}.core-orgchartflex-container .scroll-container{display:block;width:var(--width);height:var(--height);overflow-x:auto}.core-orgchartflex-container .scroll-container .zoom-control{top:var(--size-layout-block-cell-spacing);right:var(--size-layout-block-cell-spacing);z-index:3}.core-orgchartflex-container .scroll-container .zoom-control i{font-size:16px;color:#848484}.core-orgchartflex-container .scroll-container .print-area{transform:scale(var(--print-area-scale));transition:.5s linear}.core-orgchartflex-container .scroll-container .tree *{box-sizing:border-box}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul,.core-orgchartflex-container .scroll-container .tree li{list-style:none;margin:0;padding:0;position:relative}.core-orgchartflex-container .scroll-container .tree{margin:0 0 1em;text-align:center}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul{display:table}.core-orgchartflex-container .scroll-container .tree ul{width:100%}.core-orgchartflex-container .scroll-container .tree li{display:table-cell;padding:var(--from-children-to-top-line) 0;vertical-align:top!important}.core-orgchartflex-container .scroll-container .tree li:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";left:0;position:absolute;right:0;top:0}.core-orgchartflex-container .scroll-container .tree li:first-child:before{left:50%}.core-orgchartflex-container .scroll-container .tree li:last-child:before{right:50%}.core-orgchartflex-container .scroll-container .tree code,.core-orgchartflex-container .scroll-container .tree span{border:solid var(--children-border-size) var(--children-border-color);display:inline-block;margin:0 var(--children-horizontal-margin) var(--from-parent-to-children-top-line);position:relative}.core-orgchartflex-container .scroll-container .tree span.compact{max-width:75px}.core-orgchartflex-container .scroll-container .tree ul:before,.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";height:calc(var(--from-children-to-top-line) - var(--connection-size));left:50%;position:absolute}.core-orgchartflex-container .scroll-container .tree ul:before{top:calc(var(--from-parent-to-children-top-line) * -1 + var(--connection-size) / 2);height:calc(var(--from-parent-to-children-top-line) - var(--connection-size) * 1.5 + 1px)}.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{top:calc(var(--from-children-to-top-line) * -1 + var(--connection-size) / 2 - var(--children-border-size))}.core-orgchartflex-container .scroll-container .tree>li{margin-top:0}.core-orgchartflex-container .scroll-container .tree>li:before,.core-orgchartflex-container .scroll-container .tree>li:after,.core-orgchartflex-container .scroll-container .tree>li>code:before,.core-orgchartflex-container .scroll-container .tree>li>span:before{outline:none}.core-orgchartflex-container .scroll-container a{text-decoration:unset;color:var(--link-color)!important}.core-orgchartflex-container.left-right{display:flex;width:100%;height:100%}.org-tree-wrapper{position:relative;width:var(--org-tree-width);min-width:var(--org-tree-width);max-width:var(--org-tree-width);background:#fafafa;border-right:1px solid #e0e0e0;overflow:hidden;transition:width .26s ease,min-width .26s ease,max-width .26s ease,transform .26s ease}.org-tree-wrapper.collapsed{width:var(--org-tree-collapsed-width);min-width:var(--org-tree-collapsed-width);max-width:var(--org-tree-collapsed-width)}.collapse-toggle{position:absolute;top:50%;right:0;transform:translateY(-50%);width:24px;height:48px;background:#fff;border:1px solid #ddd;border-left:none;border-radius:0 6px 6px 0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease;box-shadow:0 2px 6px #00000014;z-index:10}.collapse-toggle:hover{background:#f3f3f3}.collapse-toggle i{font-size:18px;color:#666}.scroll-container{flex:1 1 auto;position:relative;overflow:auto}.org-tree-wrapper.collapsed core-org-tree{opacity:0;pointer-events:none;transition:opacity .15s ease}.org-tree-wrapper:not(.collapsed) core-org-tree{opacity:1;transition:opacity .2s ease}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39694
39675
|
}
|
|
39695
39676
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreOrgchartflexComponent, decorators: [{
|
|
39696
39677
|
type: Component,
|
|
@@ -39698,8 +39679,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
39698
39679
|
NgStyle,
|
|
39699
39680
|
AsyncPipe,
|
|
39700
39681
|
NgTemplateOutlet,
|
|
39701
|
-
FullscreenModalLoaderComponent
|
|
39702
|
-
|
|
39682
|
+
FullscreenModalLoaderComponent,
|
|
39683
|
+
CoreOrgTreeComponent
|
|
39684
|
+
], template: "<div #container class=\"core-orgchartflex-container\" [class.left-right]=\"!!$showOrgTree()\" (mousedown)=\"startDragging($event, false)\"\r\n (mouseup)=\"stopDragging($event, false)\" (mouseleave)=\"stopDragging($event, false)\" (mousemove)=\"moveEvent($event)\">\r\n\r\n @if (!!$showOrgTree()) {\r\n <div class=\"org-tree-wrapper\" [class.collapsed]=\"$isCollapsed()\">\r\n <core-org-tree [accessorMode]=\"'ACTIVATED_SINGLE'\"/>\r\n <div class=\"collapse-toggle\" (click)=\"togglePanel()\">\r\n @if (!$isCollapsed()) {\r\n <i class=\"feather-chevron-left\" ></i>\r\n }\r\n @if ($isCollapsed()) {\r\n <i class=\"feather-chevron-right\"></i>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"scroll-container\" #parent\r\n [ngStyle]=\"{ cursor: $mouseDown() ? 'all-scroll' : 'unset', width: $width() + 'px', height: $height() + 'px' }\">\r\n\r\n <div class=\"zoom-control p-absolute\">\r\n <div class=\"p-relative d-flex d-flex-start\">\r\n <i class=\"feather-minus-circle pointer\" (click)=\"zoomOut()\"></i>\r\n <i class=\"feather-plus-circle pointer\" (click)=\"zoomIn()\"></i>\r\n <i class=\"feather-monitor pointer\" (click)=\"zoomFeat()\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"print-area\" #printArea>\r\n\r\n @for (root of $internalData(); track $index) {\r\n <ul class=\"tree\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root}\"></ng-container>\r\n </ul>\r\n }\r\n\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-title=\"context.tree$Title\" let-expanded=\"context.tree$Expanded\"\r\n let-children=\"context.tree$Children\" let-tier=\"context.tree$Tier\" let-isActive=\"context.isActive\">\r\n @if ((!$showDissolved() && !!isActive) || (!!$showDissolved())) {\r\n <li>\r\n @if ($compactMode()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.compact]=\"tier !== 1\"\r\n [class.expanded]=\"expanded\">\r\n {{ title }}\r\n </span>\r\n }\r\n\r\n <!-- When passing item template and compactMode=false-->\r\n @if (!$compactMode() && !!$itemTemplate()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.expanded]=\"expanded\">\r\n <ng-container *ngTemplateOutlet=\"$itemTemplate(); context: { item: context } \"></ng-container>\r\n </span>\r\n }\r\n <!-- ------------------------- -->\r\n\r\n @if (!!expanded && !!children.length) {\r\n <ul>\r\n @for (child of children; track $index) {\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child}\"></ng-container>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n\r\n </div>\r\n\r\n @if (printing$ | async) {\r\n <app-fullscreen-modal-loader />\r\n }\r\n\r\n</div>", styles: [".core-orgchartflex-container{--width: 100px;--height: 100px;--link-color: cadetblue;--print-area-scale: 1;--connection-color: gray;--connection-size: 1px;--from-children-to-top-line: 100px;--from-parent-to-children-top-line: 100px;--children-horizontal-margin: 5px;--children-border-size: 1px;--children-border-color: gray;--org-tree-width: 320px;--org-tree-collapsed-width: 24px}@keyframes fadeIn{0%{transform:scale(0)}to{transform:scale(1)}}.core-orgchartflex-container *{animation:fadeIn .5s ease-in-out}.core-orgchartflex-container .scroll-container{display:block;width:var(--width);height:var(--height);overflow-x:auto}.core-orgchartflex-container .scroll-container .zoom-control{top:var(--size-layout-block-cell-spacing);right:var(--size-layout-block-cell-spacing);z-index:3}.core-orgchartflex-container .scroll-container .zoom-control i{font-size:16px;color:#848484}.core-orgchartflex-container .scroll-container .print-area{transform:scale(var(--print-area-scale));transition:.5s linear}.core-orgchartflex-container .scroll-container .tree *{box-sizing:border-box}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul,.core-orgchartflex-container .scroll-container .tree li{list-style:none;margin:0;padding:0;position:relative}.core-orgchartflex-container .scroll-container .tree{margin:0 0 1em;text-align:center}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul{display:table}.core-orgchartflex-container .scroll-container .tree ul{width:100%}.core-orgchartflex-container .scroll-container .tree li{display:table-cell;padding:var(--from-children-to-top-line) 0;vertical-align:top!important}.core-orgchartflex-container .scroll-container .tree li:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";left:0;position:absolute;right:0;top:0}.core-orgchartflex-container .scroll-container .tree li:first-child:before{left:50%}.core-orgchartflex-container .scroll-container .tree li:last-child:before{right:50%}.core-orgchartflex-container .scroll-container .tree code,.core-orgchartflex-container .scroll-container .tree span{border:solid var(--children-border-size) var(--children-border-color);display:inline-block;margin:0 var(--children-horizontal-margin) var(--from-parent-to-children-top-line);position:relative}.core-orgchartflex-container .scroll-container .tree span.compact{max-width:75px}.core-orgchartflex-container .scroll-container .tree ul:before,.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";height:calc(var(--from-children-to-top-line) - var(--connection-size));left:50%;position:absolute}.core-orgchartflex-container .scroll-container .tree ul:before{top:calc(var(--from-parent-to-children-top-line) * -1 + var(--connection-size) / 2);height:calc(var(--from-parent-to-children-top-line) - var(--connection-size) * 1.5 + 1px)}.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{top:calc(var(--from-children-to-top-line) * -1 + var(--connection-size) / 2 - var(--children-border-size))}.core-orgchartflex-container .scroll-container .tree>li{margin-top:0}.core-orgchartflex-container .scroll-container .tree>li:before,.core-orgchartflex-container .scroll-container .tree>li:after,.core-orgchartflex-container .scroll-container .tree>li>code:before,.core-orgchartflex-container .scroll-container .tree>li>span:before{outline:none}.core-orgchartflex-container .scroll-container a{text-decoration:unset;color:var(--link-color)!important}.core-orgchartflex-container.left-right{display:flex;width:100%;height:100%}.org-tree-wrapper{position:relative;width:var(--org-tree-width);min-width:var(--org-tree-width);max-width:var(--org-tree-width);background:#fafafa;border-right:1px solid #e0e0e0;overflow:hidden;transition:width .26s ease,min-width .26s ease,max-width .26s ease,transform .26s ease}.org-tree-wrapper.collapsed{width:var(--org-tree-collapsed-width);min-width:var(--org-tree-collapsed-width);max-width:var(--org-tree-collapsed-width)}.collapse-toggle{position:absolute;top:50%;right:0;transform:translateY(-50%);width:24px;height:48px;background:#fff;border:1px solid #ddd;border-left:none;border-radius:0 6px 6px 0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease;box-shadow:0 2px 6px #00000014;z-index:10}.collapse-toggle:hover{background:#f3f3f3}.collapse-toggle i{font-size:18px;color:#666}.scroll-container{flex:1 1 auto;position:relative;overflow:auto}.org-tree-wrapper.collapsed core-org-tree{opacity:0;pointer-events:none;transition:opacity .15s ease}.org-tree-wrapper:not(.collapsed) core-org-tree{opacity:1;transition:opacity .2s ease}\n"] }]
|
|
39703
39685
|
}], ctorParameters: () => [], propDecorators: { printFlag$: [{
|
|
39704
39686
|
type: Input
|
|
39705
39687
|
}], printing$: [{
|
|
@@ -41756,33 +41738,33 @@ const coreWorkflowRoutes = [
|
|
|
41756
41738
|
{
|
|
41757
41739
|
path: 'form-assign/:id',
|
|
41758
41740
|
outlet: "formAssignAux",
|
|
41759
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-
|
|
41741
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-nct49SFr.mjs').then(m => m.WfFormAssignComponent),
|
|
41760
41742
|
canDeactivate: [CanDeactivateGuard]
|
|
41761
41743
|
}
|
|
41762
41744
|
]
|
|
41763
41745
|
},
|
|
41764
41746
|
{
|
|
41765
41747
|
path: 'global-config',
|
|
41766
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-
|
|
41748
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-BSuUBIrY.mjs').then(m => m.WfGlobalConfigComponent)
|
|
41767
41749
|
},
|
|
41768
41750
|
{
|
|
41769
41751
|
path: 'db-settings',
|
|
41770
|
-
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-
|
|
41752
|
+
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-CmO49AZU.mjs').then(m => m.DbSettingsComponent)
|
|
41771
41753
|
},
|
|
41772
41754
|
{
|
|
41773
41755
|
path: 'workflow-consume',
|
|
41774
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-
|
|
41756
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-BvFyWEqO.mjs').then(m => m.CoreWorkflowConsumeComponent),
|
|
41775
41757
|
children: [
|
|
41776
41758
|
{
|
|
41777
41759
|
path: ':id',
|
|
41778
41760
|
outlet: "workflowConsume",
|
|
41779
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
41761
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-LdFysTvc.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
41780
41762
|
}
|
|
41781
41763
|
]
|
|
41782
41764
|
},
|
|
41783
41765
|
{
|
|
41784
41766
|
path: 'workflow-consume/:id',
|
|
41785
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
41767
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-LdFysTvc.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
41786
41768
|
},
|
|
41787
41769
|
{
|
|
41788
41770
|
path: 'workflow-group-edit/:id',
|
|
@@ -41792,17 +41774,21 @@ const coreWorkflowRoutes = [
|
|
|
41792
41774
|
},
|
|
41793
41775
|
{
|
|
41794
41776
|
path: 'design/:id',
|
|
41795
|
-
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-
|
|
41777
|
+
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-D3Lpsk-N.mjs').then(m => m.wfDesignWrapperRoutes),
|
|
41796
41778
|
},
|
|
41797
41779
|
]
|
|
41798
41780
|
},
|
|
41799
41781
|
{
|
|
41800
41782
|
path: 'react/:id',
|
|
41801
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-
|
|
41783
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-iyoN_zDV.mjs').then(m => m.WfInstanceStepReactComponent)
|
|
41802
41784
|
},
|
|
41803
41785
|
{
|
|
41804
41786
|
path: 'status/:id',
|
|
41805
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-
|
|
41787
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-B58W1ZBc.mjs').then(m => m.WfInstanceStatusComponent)
|
|
41788
|
+
},
|
|
41789
|
+
{
|
|
41790
|
+
path: 'lab',
|
|
41791
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-lab.component-Db5dIgKZ.mjs').then(m => m.WfLabComponent)
|
|
41806
41792
|
}
|
|
41807
41793
|
];
|
|
41808
41794
|
|
|
@@ -44427,5 +44413,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
44427
44413
|
* Generated bundle index. Do not edit.
|
|
44428
44414
|
*/
|
|
44429
44415
|
|
|
44430
|
-
export { noneAutoClosedAlertOptions as $, AppService as A, BaseComponent as B, ChatService as C, DragReorderDirective as D, EnumCoreTablePipeType as E, FullscreenModalLoaderComponent as F, CoreDropdownComponent as G, CoreChecklistComponent as H, ImageErrorResolverDirective as I, CoreDatePickerComponent as J, CoreFormControlSeekerComponent as K, CoreCurrencyInputComponent as L, MultiLanguageService as M, EnumActorSourceType as N, CoreParamControlComponent as O, CoreRadioGroupComponent as P, GptService as Q, ApplicationHelpService as R, StringHtmlPipe as S, TooltipDirective as T, HotKeysDirective as U, EnumCorePageEditMode as V, CoreFormComponent as W, NavigatorService as X, JsonService as Y, EnumCoreButtonVNSCode as Z, READONLY_WORKFLOW_FIELDS as _, AppConfigService as a, CommonHttpRequestService as a$, CoreButtonGroupVnsComponent as a0, CoreStickerCollectionComponent as a1, HtmlTooltipDirective as a2, CoreControlNoFormArrayComponent as a3, EnumFormDesignMode as a4, CoreControlComponent as a5, JsonSafePipe as a6, CoreAttachmentComponent as a7, CoreMonthSelectorComponent as a8, EnumImageResolverType as a9, EnumStyleButtonClass as aA, CanActivateFunctionUrlMapperGuard as aB, InitializationCanActivateFn as aC, InitializationCanMatchFn as aD, httpInterceptorProviders as aE, InterceptorSkipHeader as aF, appTypeInterceptor as aG, baseUrlInterceptor as aH, authInterceptor as aI, graphInterceptor as aJ, tokenInterceptor as aK, responseInterceptor as aL, timeZoneInterceptor as aM, cachingInterceptor as aN, langInterceptor as aO, EnumFilterOperator as aP, OnlineUsersComponent as aQ, ActionService as aR, AppInitializationService as aS, AuthService as aT, CacheService as aU, EnumSwUpdateVersionUpdatesEventType as aV, CheckForUpdateService as aW, EnumDeviceType as aX, EnumBrowserType as aY, EnumOsType as aZ, ClientService as a_, NormalizeHumanNamePipe as aa, CoreIosSwitcherComponent as ab, SunnyRotatingComponent as ac, MapAppdemoToServerPipePipe as ad, MapAttachmentToServerPipe as ae, MapNewsfeedMediaToServerPipe as af, UploadedFilenameCutoffPipe as ag, DialogStateComponent as ah, FooterComponent as ai, RightchatComponent as aj, WaittingScreenComponent as ak, longAlertOptions as al, attachmentOptions as am, CORE_VNS_BUTTONS as an, defaultPaging as ao, DESKTOP_SCREEN_HEDER_HEIGHT as ap, MOBILE_SCREEN_HEDER_HEIGHT as aq, themeBlue as ar, DATE_VALUE_ACCESSOR as as, DateValueAccessor as at, EnumDragType as au, EnumErrorType as av, EnumIconClass as aw, EnumProfileInfoSector as ax, EnumSignalRType as ay, EnumSortDirection as az, AlertService as b, MutationViewComponent as b$, TLA_CONFIG as b0, ConfigService as b1, CoreTableService as b2, DndService as b3, DocxMergeService as b4, FilterKitService as b5, GrpcService as b6, HeaderService as b7, HistoryService as b8, HttpErrorHandler as b9, TopicPermissionService as bA, TopicTreeService as bB, UploadedFileService as bC, UrlService as bD, UserActivityService as bE, EvaluateDialogService as bF, EnumWorkScheduleViewMode as bG, WorkShiftDndService as bH, AtShiftPatternComponent as bI, AtShiftPatternApplyComponent as bJ, AtShiftPatternEditComponent as bK, AtWorksignComponent as bL, AtWorksignService as bM, FunctionComponent as bN, IndividualScheduleApplyComponent as bO, FunctionEditComponent as bP, FunctionIgnoreComponent as bQ, FunctionIgnoreEditComponent as bR, GroupFunctionComponent as bS, GroupFunctionEditComponent as bT, hrmSchemaRoutes as bU, InMemoryComponent as bV, LanguageComponent as bW, LanguageEditComponent as bX, MenuComponent as bY, MenuEditComponent as bZ, MutationLogComponent as b_, HubConnectionService as ba, IpServiceService as bb, LayoutService as bc, LiquidJsService as bd, MapService as be, MenuService as bf, MessageService as bg, ModalService as bh, OrganizationService as bi, PkceService as bj, PositionTransferService as bk, EnumNotificationDir as bl, NotificationActionType as bm, PushNotificationService as bn, RandomAvatarService as bo, RequestCache as bp, RequestCacheWithMap as bq, ResponseService as br, RoutingService as bs, EnumSsrsExpressFileExtension as bt, EnumSsrsExpressExportFormat as bu, SsrsExpressService as bv, StatisticService as bw, StatisticAuthService as bx, SysMenuService as by, TimeSheetService as bz, CoreTerminalSpinnerComponent as c, coreDocGenRoutes as c$, PaSalaryPolicyComponent as c0, PaSalaryPolicyEditComponent as c1, PortalRouteComponent as c2, ScheduleOverviewComponent as c3, simpleChatRoutes as c4, PortalRouteEditComponent as c5, SysOtherListComponent as c6, SysOtherListEditComponent as c7, SysOtherListTypeComponent as c8, SysOtherListTypeEditComponent as c9, CoreActiveUserCountComponent as cA, NewlyCreatedTokenService as cB, CoreApiProgressComponent as cC, CoreButtonGroupComponent as cD, EnumCoreButtonCode as cE, ActionSvgEditComponent as cF, CoreButtonGroupService as cG, CoreButtonVnsComponent as cH, CoreComTreeComponent as cI, ComPartyService as cJ, CoreCommonParamKitComponent as cK, CoreCompareDbPipelineComponent as cL, CoreCompositionState as cM, CoreCompositionService as cN, CoreCompositionComponent as cO, CoreConfirmDialogComponent as cP, ConfirmDialogStateComponent as cQ, CoreLazyMountComponent as cR, CoreRootMenuItemPickerComponent as cS, CoreRootMenuItemPickerService as cT, ECoreTableToolCode as cU, ECoreTableToolClass as cV, CoreTableComponent as cW, CoreComProfileComponent as cX, CoreContractSeekerComponent as cY, CoreControlNoGridBufferComponent as cZ, CoreControlNoSeekerComponent as c_, coreSysActionRoutes as ca, SysActionComponent as cb, SysActionEditComponent as cc, SysFunctionActionComponent as cd, SysFunctionActionEditComponent as ce, SysFunctionActionMapperComponent as cf, SysFunctionUrlMapperComponent as cg, FunctionEditService as ch, SysModuleComponent as ci, SysModuleEditComponent as cj, SysRouteAccessComponent as ck, liner_to_nested_array_script as cl, blob_to_base64_script as cm, AlertComponent as cn, EnumAlertType as co, IAlertOptions as cp, AnimatedTextService as cq, AnimatedTextComponent as cr, BaseDropdownComponent as cs, ButtonGroupModule as ct, ButtonGroupService as cu, ButtonGroupComponent as cv, EnumButtonCaptionCode as cw, CoreButtonComponent as cx, CoreAccordionComponent as cy, CoreAccordionService as cz, CorePageHeaderComponent as d, CorePermissionService as d$, CoreDocgenToolbarComponent as d0, CoreEmployeeScheduleComponent as d1, CoreEmployeeSeekerComponent as d2, EnumCoreFileUploaderType as d3, CoreFileUploaderComponent as d4, CoreFilterHubComponent as d5, CoreFilterHubService as d6, ControlBase as d7, Textbox as d8, CoreControlService as d9, CoreNavigationTrackerComponent as dA, coreNavigationTrackerRoutes as dB, CoreOauthCallbackComponent as dC, CoreOauthCallbackOffice365Component as dD, EnumCoreOrgTreeaAccessorMode as dE, EnumCoreOrgTreeaSearchMode as dF, CoreOrgTreeComponent as dG, CoreOrgTreeState as dH, CoreOrgTreeService as dI, CoreOrgUnitSeekerComponent as dJ, CoreOrgchartflexComponent as dK, CoreOrgParamComponent as dL, EnumCorePageEditBootstrapClass as dM, EnumCorePageEditFieldType as dN, CorePageEditService as dO, CorePageEditLiteComponent as dP, CorePageEditTabComponent as dQ, EnumExType as dR, CorePageListService as dS, CorePageListState as dT, CorePageListContentComponent as dU, EnumCoreViewItemType as dV, CorePageViewComponent as dW, CorePaginationComponent as dX, CorePaginationFullComponent as dY, CorePaginationFullService as dZ, CoreFileFormatPickerComponent as d_, CustomValidators as da, URL_PATTERN as db, coreFormDesignRoutes as dc, CoreFormTabComponent as dd, CoreFormLiteComponent as de, CoreFormControlBaseComponent as df, EnumCoreSeekerColumnJob as dg, EnumCoreSeekerColumnStaffProfile as dh, EnumCoreSeekerColumnContract as di, EnumCoreSeekerColumnWorking as dj, EnumCoreSeekerColumnWage as dk, EnumCoreSeekerColumnPosition as dl, EnumCoreSeekerColumnPositionConcurrent as dm, EnumCoreSeekerColumnAutoForm as dn, SeekerService as dp, CoreGridBufferComponent as dq, CoreHeaderParamsComponent as dr, CoreHelperComponent as ds, CoreLineComponent as dt, CoreLiquidWysiwygComponent as du, CoreListComponent as dv, CoreListLazyComponent as dw, CoreLoadingSurfaceComponent as dx, CoreMccComponent as dy, CoreMonthPickerComponent as dz, TranslatePipe as e, LongTaskService as e$, EnumPermissionObjectType as e0, CorePermissionComponent as e1, CorePermissionActionsComponent as e2, CorePositionConcurrentSeekerComponent as e3, CorePositionSeekerComponent as e4, CoreQrcodeComponent as e5, EnumOparator as e6, CoreQueryBuilderComponent as e7, CoreReducerIconComponent as e8, CoreRotatingTextComponent as e9, CoreYearPickerComponent as eA, CoreYearSelectorComponent as eB, EnumCoreD3ScaleType as eC, CoreD3Service as eD, CorePieComponent as eE, CoreScatterPlotComponent as eF, EnumHrComparisonCode as eG, EnumICoreStatisticWidgetDataType as eH, CoreStatisticWidgetComponent as eI, DecisionComponent as eJ, EvaluateDialogComponent as eK, HuconcurrentlyComponent as eL, JobComponent as eM, LanguageChangerComponent as eN, DEFAULT_SVG as eO, ItemComponent as eP, NavigatorComponent as eQ, OtpInputComponent as eR, OtpInputService as eS, PageTitleComponent as eT, PaginationComponent as eU, FilterPipe as eV, normalizeHumanName as eW, PositionComponent as eX, PositionEditService as eY, CoreDatetimeService as eZ, FileService as e_, CoreRouteAccumulatorComponent as ea, CoreRoutingHistoryComponent as eb, CoreSalaryPolicyPickerComponent as ec, CoreScrollComponent as ed, CoreScrollLazyComponent as ee, CoreSeenByComponent as ef, CoreShiftCardComponent as eg, CoreShiftCellComponent as eh, CoreShiftCollectionComponent as ei, CoreShiftStickerComponent as ej, STICKER_COLOR_SCHEMA as ek, CoreStatusStickerComponent as el, CoreSubFormGroupComponent as em, CoreTabListComponent as en, CoreTagsComponent as eo, CoreTopicPickerComponent as ep, EnumCoreArticleCategoryTreeaAccessorMode as eq, CoreTopicTreeComponent as er, CoreTreeComponent as es, EnumCoreTreeGridEditMode as et, CoreTreeGridComponent as eu, CoreWageSeekerComponent as ev, CoreWorkingSeekerComponent as ew, coreWorkflowRoutes as ex, CoreWorkflowBuilderComponent as ey, CoreWorkflowGroupEditComponent as ez, CorePageListComponent as f, EnumRecursiveFields as f0, RecursiveService as f1, StringService as f2, UnicodeService as f3, StaffProfileComponent as f4, ThreedotsComponent as f5, TooltipComponent as f6, UserActivityComponent as f7, WageComponent as f8, tooltip_directive as f9, coreStickerCollection_component as fa, dragReorder_directive as fb, CoreCheckboxComponent as g, BaseEditComponent as h, EnumFormBaseContolType as i, DialogService as j, CorePageEditComponent as k, CoreTabsComponent as l, CoreWorkflowService as m, EnumCoreFormControlSeekerSourceType as n, CoreFormService as o, DbService as p, AiHintForColumnComponent as q, CoreWorkflowListComponent as r, CanDeactivateGuard as s, TableCellPipe as t, MapAvatarToServerPipe as u, alertOptions as v, SocketService as w, CoreFormDesignService as x, EnumWorkflowStepType as y, DomService as z };
|
|
44431
|
-
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-
|
|
44416
|
+
export { READONLY_WORKFLOW_FIELDS as $, AppService as A, BaseComponent as B, ChatService as C, DragReorderDirective as D, EnumCoreTablePipeType as E, FullscreenModalLoaderComponent as F, CoreDropdownComponent as G, CoreChecklistComponent as H, ImageErrorResolverDirective as I, CoreDatePickerComponent as J, CoreFormControlSeekerComponent as K, CoreCurrencyInputComponent as L, MultiLanguageService as M, EnumActorSourceType as N, CoreParamControlComponent as O, CoreRadioGroupComponent as P, GptService as Q, CoreStickerCollectionComponent as R, StringHtmlPipe as S, TooltipDirective as T, ApplicationHelpService as U, HotKeysDirective as V, EnumCorePageEditMode as W, CoreFormComponent as X, NavigatorService as Y, JsonService as Z, EnumCoreButtonVNSCode as _, AppConfigService as a, CommonHttpRequestService as a$, noneAutoClosedAlertOptions as a0, CoreButtonGroupVnsComponent as a1, EnumFilterOperator as a2, HtmlTooltipDirective as a3, CoreControlNoFormArrayComponent as a4, EnumFormDesignMode as a5, CoreControlComponent as a6, JsonSafePipe as a7, CoreAttachmentComponent as a8, CoreMonthSelectorComponent as a9, EnumSortDirection as aA, EnumStyleButtonClass as aB, CanActivateFunctionUrlMapperGuard as aC, InitializationCanActivateFn as aD, InitializationCanMatchFn as aE, httpInterceptorProviders as aF, InterceptorSkipHeader as aG, appTypeInterceptor as aH, baseUrlInterceptor as aI, authInterceptor as aJ, graphInterceptor as aK, tokenInterceptor as aL, responseInterceptor as aM, timeZoneInterceptor as aN, cachingInterceptor as aO, langInterceptor as aP, OnlineUsersComponent as aQ, ActionService as aR, AppInitializationService as aS, AuthService as aT, CacheService as aU, EnumSwUpdateVersionUpdatesEventType as aV, CheckForUpdateService as aW, EnumDeviceType as aX, EnumBrowserType as aY, EnumOsType as aZ, ClientService as a_, EnumImageResolverType as aa, NormalizeHumanNamePipe as ab, CoreIosSwitcherComponent as ac, SunnyRotatingComponent as ad, MapAppdemoToServerPipePipe as ae, MapAttachmentToServerPipe as af, MapNewsfeedMediaToServerPipe as ag, UploadedFilenameCutoffPipe as ah, DialogStateComponent as ai, FooterComponent as aj, RightchatComponent as ak, WaittingScreenComponent as al, longAlertOptions as am, attachmentOptions as an, CORE_VNS_BUTTONS as ao, defaultPaging as ap, DESKTOP_SCREEN_HEDER_HEIGHT as aq, MOBILE_SCREEN_HEDER_HEIGHT as ar, themeBlue as as, DATE_VALUE_ACCESSOR as at, DateValueAccessor as au, EnumDragType as av, EnumErrorType as aw, EnumIconClass as ax, EnumProfileInfoSector as ay, EnumSignalRType as az, AlertService as b, MutationViewComponent as b$, TLA_CONFIG as b0, ConfigService as b1, CoreTableService as b2, DndService as b3, DocxMergeService as b4, FilterKitService as b5, GrpcService as b6, HeaderService as b7, HistoryService as b8, HttpErrorHandler as b9, TopicPermissionService as bA, TopicTreeService as bB, UploadedFileService as bC, UrlService as bD, UserActivityService as bE, EvaluateDialogService as bF, EnumWorkScheduleViewMode as bG, WorkShiftDndService as bH, AtShiftPatternComponent as bI, AtShiftPatternApplyComponent as bJ, AtShiftPatternEditComponent as bK, AtWorksignComponent as bL, AtWorksignService as bM, FunctionComponent as bN, IndividualScheduleApplyComponent as bO, FunctionEditComponent as bP, FunctionIgnoreComponent as bQ, FunctionIgnoreEditComponent as bR, GroupFunctionComponent as bS, GroupFunctionEditComponent as bT, hrmSchemaRoutes as bU, InMemoryComponent as bV, LanguageComponent as bW, LanguageEditComponent as bX, MenuComponent as bY, MenuEditComponent as bZ, MutationLogComponent as b_, HubConnectionService as ba, IpServiceService as bb, LayoutService as bc, LiquidJsService as bd, MapService as be, MenuService as bf, MessageService as bg, ModalService as bh, OrganizationService as bi, PkceService as bj, PositionTransferService as bk, EnumNotificationDir as bl, NotificationActionType as bm, PushNotificationService as bn, RandomAvatarService as bo, RequestCache as bp, RequestCacheWithMap as bq, ResponseService as br, RoutingService as bs, EnumSsrsExpressFileExtension as bt, EnumSsrsExpressExportFormat as bu, SsrsExpressService as bv, StatisticService as bw, StatisticAuthService as bx, SysMenuService as by, TimeSheetService as bz, CoreTerminalSpinnerComponent as c, coreDocGenRoutes as c$, PaSalaryPolicyComponent as c0, PaSalaryPolicyEditComponent as c1, PortalRouteComponent as c2, ScheduleOverviewComponent as c3, simpleChatRoutes as c4, PortalRouteEditComponent as c5, SysOtherListComponent as c6, SysOtherListEditComponent as c7, SysOtherListTypeComponent as c8, SysOtherListTypeEditComponent as c9, CoreActiveUserCountComponent as cA, NewlyCreatedTokenService as cB, CoreApiProgressComponent as cC, CoreButtonGroupComponent as cD, EnumCoreButtonCode as cE, ActionSvgEditComponent as cF, CoreButtonGroupService as cG, CoreButtonVnsComponent as cH, CoreComTreeComponent as cI, ComPartyService as cJ, CoreCommonParamKitComponent as cK, CoreCompareDbPipelineComponent as cL, CoreCompositionState as cM, CoreCompositionService as cN, CoreCompositionComponent as cO, CoreConfirmDialogComponent as cP, ConfirmDialogStateComponent as cQ, CoreLazyMountComponent as cR, CoreRootMenuItemPickerComponent as cS, CoreRootMenuItemPickerService as cT, ECoreTableToolCode as cU, ECoreTableToolClass as cV, CoreTableComponent as cW, CoreComProfileComponent as cX, CoreContractSeekerComponent as cY, CoreControlNoGridBufferComponent as cZ, CoreControlNoSeekerComponent as c_, coreSysActionRoutes as ca, SysActionComponent as cb, SysActionEditComponent as cc, SysFunctionActionComponent as cd, SysFunctionActionEditComponent as ce, SysFunctionActionMapperComponent as cf, SysFunctionUrlMapperComponent as cg, FunctionEditService as ch, SysModuleComponent as ci, SysModuleEditComponent as cj, SysRouteAccessComponent as ck, liner_to_nested_array_script as cl, blob_to_base64_script as cm, AlertComponent as cn, EnumAlertType as co, IAlertOptions as cp, AnimatedTextService as cq, AnimatedTextComponent as cr, BaseDropdownComponent as cs, ButtonGroupModule as ct, ButtonGroupService as cu, ButtonGroupComponent as cv, EnumButtonCaptionCode as cw, CoreButtonComponent as cx, CoreAccordionComponent as cy, CoreAccordionService as cz, CorePageHeaderComponent as d, CorePermissionService as d$, CoreDocgenToolbarComponent as d0, CoreEmployeeScheduleComponent as d1, CoreEmployeeSeekerComponent as d2, EnumCoreFileUploaderType as d3, CoreFileUploaderComponent as d4, CoreFilterHubComponent as d5, CoreFilterHubService as d6, ControlBase as d7, Textbox as d8, CoreControlService as d9, CoreNavigationTrackerComponent as dA, coreNavigationTrackerRoutes as dB, CoreOauthCallbackComponent as dC, CoreOauthCallbackOffice365Component as dD, EnumCoreOrgTreeaAccessorMode as dE, EnumCoreOrgTreeaSearchMode as dF, CoreOrgTreeComponent as dG, CoreOrgTreeState as dH, CoreOrgTreeService as dI, CoreOrgUnitSeekerComponent as dJ, CoreOrgchartflexComponent as dK, CoreOrgParamComponent as dL, EnumCorePageEditBootstrapClass as dM, EnumCorePageEditFieldType as dN, CorePageEditService as dO, CorePageEditLiteComponent as dP, CorePageEditTabComponent as dQ, EnumExType as dR, CorePageListService as dS, CorePageListState as dT, CorePageListContentComponent as dU, EnumCoreViewItemType as dV, CorePageViewComponent as dW, CorePaginationComponent as dX, CorePaginationFullComponent as dY, CorePaginationFullService as dZ, CoreFileFormatPickerComponent as d_, CustomValidators as da, URL_PATTERN as db, coreFormDesignRoutes as dc, CoreFormTabComponent as dd, CoreFormLiteComponent as de, CoreFormControlBaseComponent as df, EnumCoreSeekerColumnJob as dg, EnumCoreSeekerColumnStaffProfile as dh, EnumCoreSeekerColumnContract as di, EnumCoreSeekerColumnWorking as dj, EnumCoreSeekerColumnWage as dk, EnumCoreSeekerColumnPosition as dl, EnumCoreSeekerColumnPositionConcurrent as dm, EnumCoreSeekerColumnAutoForm as dn, SeekerService as dp, CoreGridBufferComponent as dq, CoreHeaderParamsComponent as dr, CoreHelperComponent as ds, CoreLineComponent as dt, CoreLiquidWysiwygComponent as du, CoreListComponent as dv, CoreListLazyComponent as dw, CoreLoadingSurfaceComponent as dx, CoreMccComponent as dy, CoreMonthPickerComponent as dz, TranslatePipe as e, LongTaskService as e$, EnumPermissionObjectType as e0, CorePermissionComponent as e1, CorePermissionActionsComponent as e2, CorePositionConcurrentSeekerComponent as e3, CorePositionSeekerComponent as e4, CoreQrcodeComponent as e5, EnumOparator as e6, CoreQueryBuilderComponent as e7, CoreReducerIconComponent as e8, CoreRotatingTextComponent as e9, CoreYearPickerComponent as eA, CoreYearSelectorComponent as eB, EnumCoreD3ScaleType as eC, CoreD3Service as eD, CorePieComponent as eE, CoreScatterPlotComponent as eF, EnumHrComparisonCode as eG, EnumICoreStatisticWidgetDataType as eH, CoreStatisticWidgetComponent as eI, DecisionComponent as eJ, EvaluateDialogComponent as eK, HuconcurrentlyComponent as eL, JobComponent as eM, LanguageChangerComponent as eN, DEFAULT_SVG as eO, ItemComponent as eP, NavigatorComponent as eQ, OtpInputComponent as eR, OtpInputService as eS, PageTitleComponent as eT, PaginationComponent as eU, FilterPipe as eV, normalizeHumanName as eW, PositionComponent as eX, PositionEditService as eY, CoreDatetimeService as eZ, FileService as e_, CoreRouteAccumulatorComponent as ea, CoreRoutingHistoryComponent as eb, CoreSalaryPolicyPickerComponent as ec, CoreScrollComponent as ed, CoreScrollLazyComponent as ee, CoreSeenByComponent as ef, CoreShiftCardComponent as eg, CoreShiftCellComponent as eh, CoreShiftCollectionComponent as ei, CoreShiftStickerComponent as ej, STICKER_COLOR_SCHEMA as ek, CoreStatusStickerComponent as el, CoreSubFormGroupComponent as em, CoreTabListComponent as en, CoreTagsComponent as eo, CoreTopicPickerComponent as ep, EnumCoreArticleCategoryTreeaAccessorMode as eq, CoreTopicTreeComponent as er, CoreTreeComponent as es, EnumCoreTreeGridEditMode as et, CoreTreeGridComponent as eu, CoreWageSeekerComponent as ev, CoreWorkingSeekerComponent as ew, coreWorkflowRoutes as ex, CoreWorkflowBuilderComponent as ey, CoreWorkflowGroupEditComponent as ez, CorePageListComponent as f, EnumRecursiveFields as f0, RecursiveService as f1, StringService as f2, UnicodeService as f3, StaffProfileComponent as f4, ThreedotsComponent as f5, TooltipComponent as f6, UserActivityComponent as f7, WageComponent as f8, tooltip_directive as f9, coreStickerCollection_component as fa, dragReorder_directive as fb, CoreCheckboxComponent as g, BaseEditComponent as h, EnumFormBaseContolType as i, DialogService as j, CorePageEditComponent as k, CoreTabsComponent as l, CoreWorkflowService as m, EnumCoreFormControlSeekerSourceType as n, CoreFormService as o, DbService as p, AiHintForColumnComponent as q, CoreWorkflowListComponent as r, CanDeactivateGuard as s, TableCellPipe as t, MapAvatarToServerPipe as u, alertOptions as v, SocketService as w, CoreFormDesignService as x, EnumWorkflowStepType as y, DomService as z };
|
|
44417
|
+
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-TWTSrQ0J.mjs.map
|