ngx-histaff-alpha 6.4.8 → 6.5.0
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-f4YBgbOv.mjs → ngx-histaff-alpha-ai-hint-for-table.component-CHgQSi0p.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-f4YBgbOv.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-CHgQSi0p.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-BMU-rbOU.mjs → ngx-histaff-alpha-core-form-design.component-CTrNNE7-.mjs} +458 -254
- package/fesm2022/ngx-histaff-alpha-core-form-design.component-CTrNNE7-.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-nEE8LeYS.mjs → ngx-histaff-alpha-core-sys-action.component-GIciqrnf.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-nEE8LeYS.mjs.map → ngx-histaff-alpha-core-sys-action.component-GIciqrnf.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-DwSst07G.mjs → ngx-histaff-alpha-core-template-editor.component-XwgAdRVH.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-DwSst07G.mjs.map → ngx-histaff-alpha-core-template-editor.component-XwgAdRVH.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-DWIQZeZl.mjs → ngx-histaff-alpha-core-toast-loading.component-Dx9YYqpG.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-DWIQZeZl.mjs.map → ngx-histaff-alpha-core-toast-loading.component-Dx9YYqpG.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-B-RPGCiI.mjs → ngx-histaff-alpha-core-workflow-consume.component-BP8zuxYQ.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-B-RPGCiI.mjs.map → ngx-histaff-alpha-core-workflow-consume.component-BP8zuxYQ.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-C3fYKsMd.mjs → ngx-histaff-alpha-db-settings.component-aOgA1qSq.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-C3fYKsMd.mjs.map → ngx-histaff-alpha-db-settings.component-aOgA1qSq.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-C9Jf7XWj.mjs → ngx-histaff-alpha-design-wrapper.component-hBUaZceS.mjs} +49 -7
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-hBUaZceS.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-Bk9j5IIl.mjs → ngx-histaff-alpha-design-wrapper.route-DQoOPQge.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-Bk9j5IIl.mjs.map → ngx-histaff-alpha-design-wrapper.route-DQoOPQge.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-SerupGF3.mjs → ngx-histaff-alpha-hrm-schema.component-BJZOW5Wi.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-SerupGF3.mjs.map → ngx-histaff-alpha-hrm-schema.component-BJZOW5Wi.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-live-form.component-CkeOK3B7.mjs → ngx-histaff-alpha-live-form.component-x08G6uI3.mjs} +99 -139
- package/fesm2022/ngx-histaff-alpha-live-form.component-x08G6uI3.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-DZMJyvtg.mjs → ngx-histaff-alpha-ngx-histaff-alpha-B4dw5BXZ.mjs} +296 -308
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-B4dw5BXZ.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BbsCjEaN.mjs → ngx-histaff-alpha-simple-chat.component-CtnJMX2M.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BbsCjEaN.mjs.map → ngx-histaff-alpha-simple-chat.component-CtnJMX2M.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-template-list.component-BZCdtedY.mjs → ngx-histaff-alpha-template-list.component-BysOT_8n.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-template-list.component-BZCdtedY.mjs.map → ngx-histaff-alpha-template-list.component-BysOT_8n.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-CDJfkoan.mjs → ngx-histaff-alpha-tracker-studio.component-D9L1y1k0.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-CDJfkoan.mjs.map → ngx-histaff-alpha-tracker-studio.component-D9L1y1k0.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-BLM4gRwQ.mjs → ngx-histaff-alpha-wf-form-assign.component-BACGd2Yk.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-BLM4gRwQ.mjs.map → ngx-histaff-alpha-wf-form-assign.component-BACGd2Yk.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-BhlbCxKD.mjs → ngx-histaff-alpha-wf-global-config.component-ABO46891.mjs} +18 -2
- package/fesm2022/ngx-histaff-alpha-wf-global-config.component-ABO46891.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-rCfzZVzd.mjs → ngx-histaff-alpha-wf-instance-status.component-CJj_SSmd.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-rCfzZVzd.mjs.map → ngx-histaff-alpha-wf-instance-status.component-CJj_SSmd.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-BFrOIHlR.mjs → ngx-histaff-alpha-wf-instance-step-react.component-D2FW3Uk6.mjs} +6 -7
- package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-D2FW3Uk6.mjs.map +1 -0
- package/fesm2022/ngx-histaff-alpha-wf-lab.component-Ci9x7286.mjs +130 -0
- package/fesm2022/ngx-histaff-alpha-wf-lab.component-Ci9x7286.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/interfaces/IWorkflowReactContext.d.ts +2 -0
- 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-BMU-rbOU.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-C9Jf7XWj.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-DZ7gptOo.mjs +0 -26
- package/fesm2022/ngx-histaff-alpha-form-array-props.component-DZ7gptOo.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-live-form.component-CkeOK3B7.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-DZMJyvtg.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-global-config.component-BhlbCxKD.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-BFrOIHlR.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) {
|
|
@@ -9048,6 +9261,7 @@ class CoreWorkflowService {
|
|
|
9048
9261
|
this.$currentSteps.set(steps);
|
|
9049
9262
|
}
|
|
9050
9263
|
loadByIdWithAfInstance(workflowId) {
|
|
9264
|
+
console.log("loadByIdWithAfInstance...");
|
|
9051
9265
|
if (workflowId !== '0') {
|
|
9052
9266
|
this.$loading.set(true);
|
|
9053
9267
|
this.subscriptions.push(this.appService.get(`/api/WfWorkflow/GetByIdWithAfInstance?id=${workflowId}`).pipe(filter(_ => workflowId !== '0'), catchError$1(err => {
|
|
@@ -9057,6 +9271,7 @@ class CoreWorkflowService {
|
|
|
9057
9271
|
this.$loading.set(false);
|
|
9058
9272
|
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
9059
9273
|
const workflow = x.body.innerBody;
|
|
9274
|
+
console.log("loadByIdWithAfInstance", workflow);
|
|
9060
9275
|
this.$currentFlow.set(workflow);
|
|
9061
9276
|
this.basicInfoForm.patchValue(workflow);
|
|
9062
9277
|
this.emailTemplatesForm.patchValue(workflow);
|
|
@@ -9127,8 +9342,8 @@ class CoreWorkflowService {
|
|
|
9127
9342
|
initialSubmit(request) {
|
|
9128
9343
|
return this.appService.post('/api/WfWorkflow/InitialSubmit', request);
|
|
9129
9344
|
}
|
|
9130
|
-
react(unitedCorrelationIds, reactType, reason) {
|
|
9131
|
-
return this.appService.post('/api/WorkflowEngine/React?usehub=true', { unitedCorrelationIds, reactType, reason });
|
|
9345
|
+
react(unitedCorrelationIds, reactType, reason, updatedAttributes) {
|
|
9346
|
+
return this.appService.post('/api/WorkflowEngine/React?usehub=true', { unitedCorrelationIds, reactType, reason, updatedAttributes });
|
|
9132
9347
|
}
|
|
9133
9348
|
inject(unitedCorrelationIds, injectType, reason, injectorEmployeeId = undefined) {
|
|
9134
9349
|
return this.appService.post('/api/WorkflowEngine/Inject?usehub=true', { unitedCorrelationIds, injectType, reason, injectorEmployeeId });
|
|
@@ -12912,7 +13127,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
12912
13127
|
|
|
12913
13128
|
class CoreOrgTreeService {
|
|
12914
13129
|
constructor() {
|
|
12915
|
-
this.showSearch$ = new BehaviorSubject(
|
|
13130
|
+
this.showSearch$ = new BehaviorSubject(true);
|
|
12916
13131
|
this.arrowFontSize$ = new BehaviorSubject(18);
|
|
12917
13132
|
this.titleWrapperMaxWidth$ = new BehaviorSubject(250);
|
|
12918
13133
|
}
|
|
@@ -12999,7 +13214,7 @@ class CoreOrgTreeComponent extends CoreFormControlBaseComponent {
|
|
|
12999
13214
|
this.stateIsolated$ = new BehaviorSubject(false);
|
|
13000
13215
|
this.itemDoubleClick = new EventEmitter();
|
|
13001
13216
|
this.itemClick = new EventEmitter();
|
|
13002
|
-
this.showSearch =
|
|
13217
|
+
this.showSearch = true;
|
|
13003
13218
|
this.hiddenToolClickStream$ = new BehaviorSubject('');
|
|
13004
13219
|
this.activeIds = [];
|
|
13005
13220
|
this.checkedIds = [];
|
|
@@ -20846,6 +21061,7 @@ class CoreDropdownComponent extends CoreFormControlBaseComponent {
|
|
|
20846
21061
|
this.options$ = new BehaviorSubject([]);
|
|
20847
21062
|
this.placeholder = '';
|
|
20848
21063
|
this.fitHeightWithItemCount = true;
|
|
21064
|
+
this.value = null;
|
|
20849
21065
|
//searchHeight: number = 38;
|
|
20850
21066
|
this.searchHeight = 0;
|
|
20851
21067
|
this.subscriptions = [];
|
|
@@ -20875,7 +21091,7 @@ class CoreDropdownComponent extends CoreFormControlBaseComponent {
|
|
|
20875
21091
|
this.options$ = new BehaviorSubject([]);
|
|
20876
21092
|
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
20877
21093
|
const body = x.body;
|
|
20878
|
-
const options = body.innerBody.map(item => ({
|
|
21094
|
+
const options = body.innerBody.map((item) => ({
|
|
20879
21095
|
value: item[this.optionValueFrom],
|
|
20880
21096
|
text: item[this.optionTextFrom]
|
|
20881
21097
|
}));
|
|
@@ -20970,17 +21186,6 @@ class CoreDropdownComponent extends CoreFormControlBaseComponent {
|
|
|
20970
21186
|
this.expandState = false;
|
|
20971
21187
|
this.cdr.markForCheck();
|
|
20972
21188
|
}
|
|
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
21189
|
writeValue(obj) {
|
|
20985
21190
|
this.value = obj;
|
|
20986
21191
|
const match = this.options?.find(m => m.value === obj);
|
|
@@ -21089,7 +21294,7 @@ class CoreDropdownComponent extends CoreFormControlBaseComponent {
|
|
|
21089
21294
|
{
|
|
21090
21295
|
provide: NG_VALUE_ACCESSOR,
|
|
21091
21296
|
multi: true,
|
|
21092
|
-
useExisting: CoreDropdownComponent,
|
|
21297
|
+
useExisting: forwardRef(() => CoreDropdownComponent),
|
|
21093
21298
|
},
|
|
21094
21299
|
], 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
21300
|
}
|
|
@@ -21107,7 +21312,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
21107
21312
|
{
|
|
21108
21313
|
provide: NG_VALUE_ACCESSOR,
|
|
21109
21314
|
multi: true,
|
|
21110
|
-
useExisting: CoreDropdownComponent,
|
|
21315
|
+
useExisting: forwardRef(() => CoreDropdownComponent),
|
|
21111
21316
|
},
|
|
21112
21317
|
], 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
21318
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: DomService }, { type: AlertService }, { type: MultiLanguageService }, { type: i0.ChangeDetectorRef }, { type: AppService }], propDecorators: { getByIdObject$: [{
|
|
@@ -25750,7 +25955,7 @@ class CoreFormArrayComponent extends CoreFormControlBaseComponent {
|
|
|
25750
25955
|
if (changes['formArray'] && this.formArray) {
|
|
25751
25956
|
console.log('✅ formArray ready:', this.formArray);
|
|
25752
25957
|
// Only add 1 blank row when creating new
|
|
25753
|
-
const isAddNew = this.addNewMode
|
|
25958
|
+
const isAddNew = !!this.addNewMode$?.value;
|
|
25754
25959
|
const hasExistingData = !!this.parentFormGroup
|
|
25755
25960
|
.getRawValue()?.[this.formArrayName]?.length;
|
|
25756
25961
|
if (isAddNew && !hasExistingData && this.formArray.length === 0) {
|
|
@@ -31680,7 +31885,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
31680
31885
|
const hrmSchemaRoutes = [
|
|
31681
31886
|
{
|
|
31682
31887
|
path: '',
|
|
31683
|
-
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-
|
|
31888
|
+
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-BJZOW5Wi.mjs').then(m => m.HrmSchemaComponent)
|
|
31684
31889
|
}
|
|
31685
31890
|
];
|
|
31686
31891
|
|
|
@@ -33853,7 +34058,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
33853
34058
|
const simpleChatRoutes = [
|
|
33854
34059
|
{
|
|
33855
34060
|
path: '',
|
|
33856
|
-
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-
|
|
34061
|
+
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-CtnJMX2M.mjs').then(m => m.SimpleChatComponent)
|
|
33857
34062
|
}
|
|
33858
34063
|
];
|
|
33859
34064
|
|
|
@@ -34519,7 +34724,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
34519
34724
|
const coreSysActionRoutes = [
|
|
34520
34725
|
{
|
|
34521
34726
|
path: "",
|
|
34522
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-sys-action.component-
|
|
34727
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-sys-action.component-GIciqrnf.mjs').then(m => m.CoreSysActionComponent),
|
|
34523
34728
|
children: [
|
|
34524
34729
|
{
|
|
34525
34730
|
path: ":id",
|
|
@@ -38223,11 +38428,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
38223
38428
|
const coreDocGenRoutes = [
|
|
38224
38429
|
{
|
|
38225
38430
|
path: 'template-list',
|
|
38226
|
-
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-
|
|
38431
|
+
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-BysOT_8n.mjs').then(m => m.TemplateListComponent),
|
|
38227
38432
|
},
|
|
38228
38433
|
{
|
|
38229
38434
|
path: ":id",
|
|
38230
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-
|
|
38435
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-XwgAdRVH.mjs').then(m => m.CoreTemplateEditorComponent),
|
|
38231
38436
|
canDeactivate: [CanDeactivateGuard]
|
|
38232
38437
|
},
|
|
38233
38438
|
{
|
|
@@ -38256,7 +38461,7 @@ const coreFormDesignRoutes = [
|
|
|
38256
38461
|
},
|
|
38257
38462
|
{
|
|
38258
38463
|
path: ':id',
|
|
38259
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-
|
|
38464
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-CTrNNE7-.mjs').then(m => m.CoreFormDesignComponent)
|
|
38260
38465
|
}
|
|
38261
38466
|
];
|
|
38262
38467
|
|
|
@@ -39167,7 +39372,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
39167
39372
|
const coreNavigationTrackerRoutes = [
|
|
39168
39373
|
{
|
|
39169
39374
|
path: '',
|
|
39170
|
-
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-
|
|
39375
|
+
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-D9L1y1k0.mjs').then(m => m.TrackerStudioComponent)
|
|
39171
39376
|
}
|
|
39172
39377
|
];
|
|
39173
39378
|
|
|
@@ -39220,6 +39425,9 @@ class CoreOrgTreeState {
|
|
|
39220
39425
|
}
|
|
39221
39426
|
|
|
39222
39427
|
class CoreOrgchartflexComponent {
|
|
39428
|
+
togglePanel() {
|
|
39429
|
+
this.$isCollapsed.update(v => !v);
|
|
39430
|
+
}
|
|
39223
39431
|
startDragging(e, flag) {
|
|
39224
39432
|
this.$mouseDown.set(true);
|
|
39225
39433
|
this.$startX.set(e.pageX - this.$parent()?.nativeElement.offsetLeft);
|
|
@@ -39249,6 +39457,8 @@ class CoreOrgchartflexComponent {
|
|
|
39249
39457
|
this.$showDissolved = input();
|
|
39250
39458
|
this.$width = input();
|
|
39251
39459
|
this.$height = input();
|
|
39460
|
+
this.$showOrgTree = input(true);
|
|
39461
|
+
this.$orgTreeWidth = input(320);
|
|
39252
39462
|
this.$connectionColor = input();
|
|
39253
39463
|
this.$connectionSize = input(); // in pixel
|
|
39254
39464
|
this.$fromChildrenToTopLine = input(); // in pixel
|
|
@@ -39259,6 +39469,7 @@ class CoreOrgchartflexComponent {
|
|
|
39259
39469
|
this.printFlag$ = new BehaviorSubject(false);
|
|
39260
39470
|
this.printing$ = new BehaviorSubject(false);
|
|
39261
39471
|
this.onPrintAreaRendered = new EventEmitter();
|
|
39472
|
+
this.$internalData = signal([]);
|
|
39262
39473
|
this.$container = viewChild('container');
|
|
39263
39474
|
this.$parent = viewChild('parent');
|
|
39264
39475
|
this.$printArea = viewChild('printArea');
|
|
@@ -39269,7 +39480,9 @@ class CoreOrgchartflexComponent {
|
|
|
39269
39480
|
this.$scrollTop = signal(undefined);
|
|
39270
39481
|
this.$scale = signal(1);
|
|
39271
39482
|
this.cdr = inject(ChangeDetectorRef);
|
|
39483
|
+
this.$isCollapsed = signal(false);
|
|
39272
39484
|
this.destroyRef = inject(DestroyRef);
|
|
39485
|
+
effect(() => this.$internalData.update(_ => this.$data()));
|
|
39273
39486
|
}
|
|
39274
39487
|
ngOnInit() {
|
|
39275
39488
|
this.printFlag$
|
|
@@ -39277,9 +39490,6 @@ class CoreOrgchartflexComponent {
|
|
|
39277
39490
|
takeUntilDestroyed(this.destroyRef))
|
|
39278
39491
|
.subscribe(async () => {
|
|
39279
39492
|
this.printing$.next(true);
|
|
39280
|
-
//await this.exportOrgChartAtomic();
|
|
39281
|
-
//await this.exportOrgChartOnePage();
|
|
39282
|
-
//await this.exportOrgChartAutoFit();
|
|
39283
39493
|
await this.exportOrgChartPro();
|
|
39284
39494
|
this.printing$.next(false);
|
|
39285
39495
|
});
|
|
@@ -39323,15 +39533,15 @@ class CoreOrgchartflexComponent {
|
|
|
39323
39533
|
toggleExpand(e) {
|
|
39324
39534
|
e.tree$Expanded = !!!e.tree$Expanded;
|
|
39325
39535
|
}
|
|
39326
|
-
|
|
39536
|
+
zoomIn() {
|
|
39327
39537
|
this.$scale.set(this.$scale() * 1.1);
|
|
39328
39538
|
this.$container().nativeElement.style.setProperty('--print-area-scale', this.$scale());
|
|
39329
39539
|
}
|
|
39330
|
-
|
|
39540
|
+
zoomOut() {
|
|
39331
39541
|
this.$scale.set(this.$scale() / 1.1);
|
|
39332
39542
|
this.$container().nativeElement.style.setProperty('--print-area-scale', this.$scale());
|
|
39333
39543
|
}
|
|
39334
|
-
|
|
39544
|
+
zoomFeat() {
|
|
39335
39545
|
this.$scale.set(1);
|
|
39336
39546
|
this.$container().nativeElement.style.setProperty('--print-area-scale', this.$scale());
|
|
39337
39547
|
}
|
|
@@ -39369,233 +39579,6 @@ class CoreOrgchartflexComponent {
|
|
|
39369
39579
|
}
|
|
39370
39580
|
}));
|
|
39371
39581
|
}
|
|
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
39582
|
async exportOrgChartPro() {
|
|
39600
39583
|
const container = this.$container()?.nativeElement;
|
|
39601
39584
|
const printArea = this.$printArea()?.nativeElement;
|
|
@@ -39690,7 +39673,7 @@ class CoreOrgchartflexComponent {
|
|
|
39690
39673
|
//window.open(pdf.output('bloburl'), '_blank');
|
|
39691
39674
|
}
|
|
39692
39675
|
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 }); }
|
|
39676
|
+
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
39677
|
}
|
|
39695
39678
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreOrgchartflexComponent, decorators: [{
|
|
39696
39679
|
type: Component,
|
|
@@ -39698,8 +39681,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
39698
39681
|
NgStyle,
|
|
39699
39682
|
AsyncPipe,
|
|
39700
39683
|
NgTemplateOutlet,
|
|
39701
|
-
FullscreenModalLoaderComponent
|
|
39702
|
-
|
|
39684
|
+
FullscreenModalLoaderComponent,
|
|
39685
|
+
CoreOrgTreeComponent
|
|
39686
|
+
], 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
39687
|
}], ctorParameters: () => [], propDecorators: { printFlag$: [{
|
|
39704
39688
|
type: Input
|
|
39705
39689
|
}], printing$: [{
|
|
@@ -41756,33 +41740,33 @@ const coreWorkflowRoutes = [
|
|
|
41756
41740
|
{
|
|
41757
41741
|
path: 'form-assign/:id',
|
|
41758
41742
|
outlet: "formAssignAux",
|
|
41759
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-
|
|
41743
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-BACGd2Yk.mjs').then(m => m.WfFormAssignComponent),
|
|
41760
41744
|
canDeactivate: [CanDeactivateGuard]
|
|
41761
41745
|
}
|
|
41762
41746
|
]
|
|
41763
41747
|
},
|
|
41764
41748
|
{
|
|
41765
41749
|
path: 'global-config',
|
|
41766
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-
|
|
41750
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-ABO46891.mjs').then(m => m.WfGlobalConfigComponent)
|
|
41767
41751
|
},
|
|
41768
41752
|
{
|
|
41769
41753
|
path: 'db-settings',
|
|
41770
|
-
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-
|
|
41754
|
+
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-aOgA1qSq.mjs').then(m => m.DbSettingsComponent)
|
|
41771
41755
|
},
|
|
41772
41756
|
{
|
|
41773
41757
|
path: 'workflow-consume',
|
|
41774
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-
|
|
41758
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-BP8zuxYQ.mjs').then(m => m.CoreWorkflowConsumeComponent),
|
|
41775
41759
|
children: [
|
|
41776
41760
|
{
|
|
41777
41761
|
path: ':id',
|
|
41778
41762
|
outlet: "workflowConsume",
|
|
41779
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
41763
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-x08G6uI3.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
41780
41764
|
}
|
|
41781
41765
|
]
|
|
41782
41766
|
},
|
|
41783
41767
|
{
|
|
41784
41768
|
path: 'workflow-consume/:id',
|
|
41785
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
41769
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-x08G6uI3.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
41786
41770
|
},
|
|
41787
41771
|
{
|
|
41788
41772
|
path: 'workflow-group-edit/:id',
|
|
@@ -41792,17 +41776,21 @@ const coreWorkflowRoutes = [
|
|
|
41792
41776
|
},
|
|
41793
41777
|
{
|
|
41794
41778
|
path: 'design/:id',
|
|
41795
|
-
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-
|
|
41779
|
+
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-DQoOPQge.mjs').then(m => m.wfDesignWrapperRoutes),
|
|
41796
41780
|
},
|
|
41797
41781
|
]
|
|
41798
41782
|
},
|
|
41799
41783
|
{
|
|
41800
41784
|
path: 'react/:id',
|
|
41801
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-
|
|
41785
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-D2FW3Uk6.mjs').then(m => m.WfInstanceStepReactComponent)
|
|
41802
41786
|
},
|
|
41803
41787
|
{
|
|
41804
41788
|
path: 'status/:id',
|
|
41805
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-
|
|
41789
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-CJj_SSmd.mjs').then(m => m.WfInstanceStatusComponent)
|
|
41790
|
+
},
|
|
41791
|
+
{
|
|
41792
|
+
path: 'lab',
|
|
41793
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-lab.component-Ci9x7286.mjs').then(m => m.WfLabComponent)
|
|
41806
41794
|
}
|
|
41807
41795
|
];
|
|
41808
41796
|
|
|
@@ -44427,5 +44415,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
44427
44415
|
* Generated bundle index. Do not edit.
|
|
44428
44416
|
*/
|
|
44429
44417
|
|
|
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-
|
|
44418
|
+
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 };
|
|
44419
|
+
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-B4dw5BXZ.mjs.map
|