ngx-histaff-alpha 5.9.1 → 5.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-ClNRMk6B.mjs → ngx-histaff-alpha-ai-hint-for-table.component-BzUUTmoN.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-ClNRMk6B.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-BzUUTmoN.mjs.map} +1 -1
- package/fesm2022/ngx-histaff-alpha-core-form-design.component-C_yKnqtf.mjs +3256 -0
- package/fesm2022/ngx-histaff-alpha-core-form-design.component-C_yKnqtf.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-core-sticker-collection.component-ZJ29hnW7.mjs → ngx-histaff-alpha-core-sticker-collection.component-Bl-aiwIo.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-core-sticker-collection.component-ZJ29hnW7.mjs.map → ngx-histaff-alpha-core-sticker-collection.component-Bl-aiwIo.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-D4lPsJ_K.mjs → ngx-histaff-alpha-core-toast-loading.component-B74LCLn2.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-D4lPsJ_K.mjs.map → ngx-histaff-alpha-core-toast-loading.component-B74LCLn2.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-Dxy4PssU.mjs → ngx-histaff-alpha-core-workflow-consume.component-BDBQQUAT.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-Dxy4PssU.mjs.map → ngx-histaff-alpha-core-workflow-consume.component-BDBQQUAT.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-ovw3ShzY.mjs → ngx-histaff-alpha-db-settings.component-BVIb2eWg.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-ovw3ShzY.mjs.map → ngx-histaff-alpha-db-settings.component-BVIb2eWg.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-Dd5UoJX1.mjs → ngx-histaff-alpha-design-wrapper.component-KuubA0Jn.mjs} +11 -9
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-KuubA0Jn.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-DLdFwwhp.mjs → ngx-histaff-alpha-design-wrapper.route-CSmaOUHg.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-DLdFwwhp.mjs.map → ngx-histaff-alpha-design-wrapper.route-CSmaOUHg.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-form-array-props.component-DkAM9Uk9.mjs → ngx-histaff-alpha-form-array-props.component-DuM5ZMkG.mjs} +5 -8
- package/fesm2022/ngx-histaff-alpha-form-array-props.component-DuM5ZMkG.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-live-form.component-BMCAth2_.mjs → ngx-histaff-alpha-live-form.component-D7oAY8-L.mjs} +17 -23
- package/fesm2022/ngx-histaff-alpha-live-form.component-D7oAY8-L.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-CkvGEG39.mjs → ngx-histaff-alpha-ngx-histaff-alpha-Dh4tWGKT.mjs} +1180 -391
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-Dh4tWGKT.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-CeB-VuEP.mjs → ngx-histaff-alpha-tracker-studio.component-D77fag1W.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-CeB-VuEP.mjs.map → ngx-histaff-alpha-tracker-studio.component-D77fag1W.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-CO09ZkTB.mjs → ngx-histaff-alpha-wf-form-assign.component-CixDiq8u.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-CO09ZkTB.mjs.map → ngx-histaff-alpha-wf-form-assign.component-CixDiq8u.mjs.map} +1 -1
- package/fesm2022/ngx-histaff-alpha-wf-instance-status.component-oBkeUjfP.mjs +177 -0
- package/fesm2022/ngx-histaff-alpha-wf-instance-status.component-oBkeUjfP.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-DRUYdQY3.mjs → ngx-histaff-alpha-wf-instance-step-react.component-D53ZEW27.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-DRUYdQY3.mjs.map → ngx-histaff-alpha-wf-instance-step-react.component-D53ZEW27.mjs.map} +1 -1
- package/fesm2022/ngx-histaff-alpha.mjs +1 -1
- package/lib/app/directives/html-tooltip.directive.d.ts +14 -4
- package/lib/app/libraries/core-button-group-vns/core-button-group-vns/EnumCoreButtonVNSCode.d.ts +3 -0
- package/lib/app/libraries/core-control/core-control/core-control.component.d.ts +1 -0
- package/lib/app/libraries/core-form/core-form/core-form.component.d.ts +1 -0
- package/lib/app/libraries/core-form/core-form/enum-interfaces.d.ts +1 -1
- package/lib/app/libraries/core-form/core-form-array/core-form-array.component.d.ts +8 -9
- package/lib/app/libraries/core-form-design/core-form-array-layout-editor/core-form-array-layout-editor.component.d.ts +14 -13
- package/lib/app/libraries/core-form-design/core-form-design-monitor/core-form-design-monitor.component.d.ts +35 -0
- package/lib/app/libraries/core-form-design/core-form-design.component.d.ts +5 -23
- package/lib/app/libraries/core-form-design/core-form-design.service.d.ts +41 -14
- package/lib/app/libraries/core-form-design/core-form-group-editor.component.d.ts +104 -0
- package/lib/app/libraries/core-form-design/field-setting/base-props/base-props.component.d.ts +10 -4
- package/lib/app/libraries/core-form-design/field-setting/calculated-props/calculated-props.component.d.ts +0 -1
- package/lib/app/libraries/core-form-design/field-setting/field-setting.component.d.ts +4 -3
- package/lib/app/libraries/core-form-design/interfaces.d.ts +3 -1
- package/lib/app/libraries/core-form-design/json-safe.pipe.d.ts +11 -0
- package/lib/app/libraries/core-form-design/live-form/live-form.component.d.ts +1 -2
- package/lib/app/libraries/core-form-design/props-host/props-host.component.d.ts +2 -1
- package/lib/app/libraries/core-workflow-builder/core-workflow.service.d.ts +1 -0
- package/lib/app/libraries/core-workflow-builder/wf-instance-status/wf-instance-status.component.d.ts +3 -0
- package/lib/app/services/json.service.d.ts +5 -1
- package/lib/app/services/organization.service.d.ts +3 -1
- package/package.json +1 -1
- package/fesm2022/ngx-histaff-alpha-core-form-design.component-KQsI4L2g.mjs +0 -2437
- package/fesm2022/ngx-histaff-alpha-core-form-design.component-KQsI4L2g.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-design-wrapper.component-Dd5UoJX1.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-form-array-props.component-DkAM9Uk9.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-live-form.component-BMCAth2_.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-CkvGEG39.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-instance-status.component-DQfVNySE.mjs +0 -153
- package/fesm2022/ngx-histaff-alpha-wf-instance-status.component-DQfVNySE.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { signal, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import { C as CorePageHeaderComponent, a as CoreTabsComponent } from './ngx-histaff-alpha-ngx-histaff-alpha-
|
|
3
|
+
import { C as CorePageHeaderComponent, a as CoreTabsComponent } from './ngx-histaff-alpha-ngx-histaff-alpha-Dh4tWGKT.mjs';
|
|
4
4
|
|
|
5
5
|
class TrackerStudioComponent {
|
|
6
6
|
constructor() {
|
|
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
21
21
|
}] });
|
|
22
22
|
|
|
23
23
|
export { TrackerStudioComponent };
|
|
24
|
-
//# sourceMappingURL=ngx-histaff-alpha-tracker-studio.component-
|
|
24
|
+
//# sourceMappingURL=ngx-histaff-alpha-tracker-studio.component-D77fag1W.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-histaff-alpha-tracker-studio.component-
|
|
1
|
+
{"version":3,"file":"ngx-histaff-alpha-tracker-studio.component-D77fag1W.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-navigation-tracker/tracker-studio/tracker-studio.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-navigation-tracker/tracker-studio/tracker-studio.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, signal } from '@angular/core';\r\nimport { CorePageHeaderComponent } from '../../core-page-header/core-page-header/core-page-header.component';\r\nimport { CoreTabsComponent } from '../../core-tabs/core-tabs/core-tabs.component';\r\n\r\n@Component({\r\n selector: 'tracker-studio',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CorePageHeaderComponent,\r\n CoreTabsComponent\r\n ],\r\n templateUrl: './tracker-studio.component.html',\r\n styleUrl: './tracker-studio.component.scss'\r\n})\r\nexport class TrackerStudioComponent {\r\n\r\n $tabIndex = signal(0);\r\n\r\n onTabHeaderClick(e: any): void {\r\n this.$tabIndex.set(e.index);\r\n }\r\n\r\n}\r\n","<core-page-header [title]=\"'Tracker Studio'\" />\r\n\r\n<core-tabs [headers]=\"['Tab1','Tab2']\" [height]=\"46\" (onHeaderClick)=\"onTabHeaderClick($event)\"/>\r\n\r\n@if ($tabIndex()===0) {\r\n\r\n <div data-scope-code=\"salary\">\r\n\r\n <form>\r\n <input type=\"text\" data-field-code=\"value\" />\r\n </form>\r\n\r\n <button data-action-code=\"view\">View</button>\r\n <button data-action-code=\"edit\">Edit</button>\r\n\r\n </div>\r\n\r\n}\r\n\r\n@if ($tabIndex()===1) {\r\n\r\n <div data-scope-code=\"attendance\">\r\n <button data-action-code=\"print\">Print</button>\r\n <button data-action-code=\"delete\">Delete</button>\r\n </div>\r\n \r\n}"],"names":[],"mappings":";;;;MAca,sBAAsB,CAAA;AAVnC,IAAA,WAAA,GAAA;AAYE,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;AAMtB;AAJC,IAAA,gBAAgB,CAAC,CAAM,EAAA;QACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;;8GALlB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,ECdnC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ktBA0BC,EDlBG,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,+KACvB,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKR,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACP,uBAAuB;wBACvB;AACD,qBAAA,EAAA,QAAA,EAAA,ktBAAA,EAAA;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Component } from '@angular/core';
|
|
3
|
-
import { B as BaseEditComponent, b as CoreWorkflowService, E as EnumFormBaseContolType, c as EnumCoreFormControlSeekerSourceType, d as CorePageEditComponent } from './ngx-histaff-alpha-ngx-histaff-alpha-
|
|
3
|
+
import { B as BaseEditComponent, b as CoreWorkflowService, E as EnumFormBaseContolType, c as EnumCoreFormControlSeekerSourceType, d as CorePageEditComponent } from './ngx-histaff-alpha-ngx-histaff-alpha-Dh4tWGKT.mjs';
|
|
4
4
|
import { BehaviorSubject } from 'rxjs';
|
|
5
5
|
import { AsyncPipe } from '@angular/common';
|
|
6
6
|
|
|
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
61
61
|
}] });
|
|
62
62
|
|
|
63
63
|
export { WfFormAssignComponent };
|
|
64
|
-
//# sourceMappingURL=ngx-histaff-alpha-wf-form-assign.component-
|
|
64
|
+
//# sourceMappingURL=ngx-histaff-alpha-wf-form-assign.component-CixDiq8u.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-histaff-alpha-wf-form-assign.component-
|
|
1
|
+
{"version":3,"file":"ngx-histaff-alpha-wf-form-assign.component-CixDiq8u.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/wf-form-assign/wf-form-assign.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/wf-form-assign/wf-form-assign.component.html"],"sourcesContent":["import { Component, inject } from '@angular/core';\r\nimport { ICorePageEditCRUD } from '../../core-page-edit/ICorePageEditCRUD';\r\nimport { EnumFormBaseContolType } from '../../../enum/EnumFormBaseContolType';\r\nimport { EnumCoreFormControlSeekerSourceType } from '../../core-form-control-seeker/EnumCoreFormControlSeekerSourceType';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ICoreFormSection } from '../../core-form/core-form/enum-interfaces';\r\nimport { CorePageEditComponent } from '../../core-page-edit/core-page-edit.component';\r\nimport { BaseEditComponent } from '../../base-edit/base-edit/base-edit.component';\r\nimport { CoreWorkflowService } from '../core-workflow.service';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'wf-form-assign',\r\n imports: [\r\n AsyncPipe,\r\n CorePageEditComponent\r\n ],\r\n templateUrl: './wf-form-assign.component.html',\r\n styleUrl: './wf-form-assign.component.scss'\r\n})\r\nexport class WfFormAssignComponent extends BaseEditComponent {\r\n\r\n public coreWorkflowService = inject(CoreWorkflowService);\r\n \r\n crud: ICorePageEditCRUD = {\r\n r: \"/api/WfWorkflow/GetById\",\r\n u: \"/api/WfWorkflow/Update\"\r\n }\r\n\r\n sections: ICoreFormSection[] = [\r\n {\r\n rows: [\r\n [\r\n {\r\n field: 'id',\r\n label: 'Workflow id',\r\n flexSize: 12,\r\n value: '',\r\n controlType: EnumFormBaseContolType.TEXTBOX,\r\n readonly: true,\r\n },\r\n ],\r\n [\r\n {\r\n field: 'afInstanceId',\r\n label: 'Form template',\r\n flexSize: 12,\r\n value: '',\r\n controlType: EnumFormBaseContolType.SEEKER,\r\n seekerSourceType: EnumCoreFormControlSeekerSourceType.FORM_SEEK,\r\n getByIdObject$: new BehaviorSubject<any>(null),\r\n getByIdApi: '/api/AfInstance/GetById',\r\n shownFrom: 'name',\r\n boundFrom: 'id'\r\n }\r\n ]\r\n ]\r\n }\r\n ]\r\n\r\n onFormCreated(e: FormGroup): void {\r\n this.form = e;\r\n }\r\n\r\n onFormReinit(e: string): void {\r\n this.formInitStringValue = e;\r\n }\r\n\r\n}\r\n","<core-page-edit\r\n [width]=\"800\"\r\n [entityTable]=\"'WF_WORKFLOW'\"\r\n [hasIdOfStringType]=\"true\"\r\n [captionCode]=\"coreWorkflowService.$currentFlow()?.name ?? 'UNKNOWN WORKFLOW'\"\r\n [sections]=\"sections\"\r\n [crud]=\"crud\"\r\n (onFormCreated)=\"onFormCreated($event)\"\r\n (onInitialValueStringReady)=\"onFormReinit($event)\"\r\n></core-page-edit>"],"names":[],"mappings":";;;;;;AAqBM,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AAT5D,IAAA,WAAA,GAAA;;AAWS,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAExD,QAAA,IAAA,CAAA,IAAI,GAAsB;AACxB,YAAA,CAAC,EAAE,yBAAyB;AAC5B,YAAA,CAAC,EAAE;SACJ;AAED,QAAA,IAAA,CAAA,QAAQ,GAAuB;AAC7B,YAAA;AACE,gBAAA,IAAI,EAAE;AACJ,oBAAA;AACE,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,KAAK,EAAE,aAAa;AACpB,4BAAA,QAAQ,EAAE,EAAE;AACZ,4BAAA,KAAK,EAAE,EAAE;4BACT,WAAW,EAAE,sBAAsB,CAAC,OAAO;AAC3C,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA;AACF,qBAAA;AACD,oBAAA;AACE,wBAAA;AACE,4BAAA,KAAK,EAAE,cAAc;AACrB,4BAAA,KAAK,EAAE,eAAe;AACtB,4BAAA,QAAQ,EAAE,EAAE;AACZ,4BAAA,KAAK,EAAE,EAAE;4BACT,WAAW,EAAE,sBAAsB,CAAC,MAAM;4BAC1C,gBAAgB,EAAE,mCAAmC,CAAC,SAAS;AAC/D,4BAAA,cAAc,EAAE,IAAI,eAAe,CAAM,IAAI,CAAC;AAC9C,4BAAA,UAAU,EAAE,yBAAyB;AACrC,4BAAA,SAAS,EAAE,MAAM;AACjB,4BAAA,SAAS,EAAE;AACZ;AACF;AACF;AACF;SACF;AAUF;AARC,IAAA,aAAa,CAAC,CAAY,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;;AAGf,IAAA,YAAY,CAAC,CAAS,EAAA;AACpB,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC;;8GA7CnB,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBlC,oYASkB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDOd,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAKZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACjB,OAAA,EAAA;wBACP,SAAS;wBACT;AACD,qBAAA,EAAA,QAAA,EAAA,oYAAA,EAAA;;;;;"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, inject, computed, ChangeDetectionStrategy, Component, signal, effect } from '@angular/core';
|
|
3
|
+
import { ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { e as BaseComponent, i as AlertService, M as MultiLanguageService, I as ImageErrorResolverDirective, j as TableCellPipe, k as MapAvatarToServerPipe, A as AppService, b as CoreWorkflowService, l as alertOptions, S as SocketService, C as CorePageHeaderComponent, m as CoreTerminalSpinnerComponent } from './ngx-histaff-alpha-ngx-histaff-alpha-Dh4tWGKT.mjs';
|
|
5
|
+
import { catchError, of, tap } from 'rxjs';
|
|
6
|
+
import { NgClass, JsonPipe } from '@angular/common';
|
|
7
|
+
|
|
8
|
+
class RuntimeRoutingComponent extends BaseComponent {
|
|
9
|
+
getStepStatusClass(step) {
|
|
10
|
+
if (step.passed === true)
|
|
11
|
+
return 'resolved';
|
|
12
|
+
if (step.passed === false)
|
|
13
|
+
return 'error';
|
|
14
|
+
return 'empty';
|
|
15
|
+
}
|
|
16
|
+
constructor(mls) {
|
|
17
|
+
super(mls);
|
|
18
|
+
this.mls = mls;
|
|
19
|
+
this.$instance = input();
|
|
20
|
+
this.as = inject(AlertService);
|
|
21
|
+
this.$steps = computed(() => {
|
|
22
|
+
const stepProgresses = this.$instance()?.stepProgresses ?? [];
|
|
23
|
+
stepProgresses.forEach(s => {
|
|
24
|
+
if (!!s.exeConfigJson) {
|
|
25
|
+
s.exeConfig = JSON.parse(s.exeConfigJson);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
s.exeConfig = {};
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
stepProgresses.sort((a, b) => a.stepOrder - b.stepOrder);
|
|
32
|
+
return [...stepProgresses];
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: RuntimeRoutingComponent, deps: [{ token: MultiLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: RuntimeRoutingComponent, isStandalone: true, selector: "runtime-routing", inputs: { $instance: { classPropertyName: "$instance", publicName: "$instance", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"runtime-routing-container inter-font p-relative\">\r\n @if ($instance() && $steps()?.length) {\r\n <div class=\"workflow-wrapper\">\r\n @for (step of $steps(); track step.id) {\r\n\r\n <div class=\"step-column\" [attr.data-actor-count]=\"step.stepProgressActors?.length\">\r\n\r\n <div class=\"step-column-aux\">\r\n <div [ngClass]=\"step.exeConfig?.routingLogic ?? ''\" class=\"step-header {{ step.stepType.toLowerCase() }} {{ getStepStatusClass(step) }}\">\r\n {{ step.stepName }}\r\n </div>\r\n\r\n @for (actor of step.stepProgressActors; track actor.id) {\r\n <div class=\"actor-card-aux\">\r\n <div class=\"actor-card d-flex d-flex-start {{ step.stepType.toLowerCase() }}\">\r\n <div class=\"avatar-wrapper\">\r\n <img [src]=\"actor.actorAvatar\"\r\n appImageErrorResolver\r\n [type]=\"'AVATAR'\"\r\n [isFemale]=\"!!actor.isFemale!\"\r\n class=\"actor-avatar\" [alt]=\"actor.actorFullname\" />\r\n <div class=\"status-icon\" [ngClass]=\"(actor.status || 'pending').toLowerCase()\">\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"actor-details\">\r\n <div class=\"actor-line\">\r\n <i class=\"feather-user\"></i>\r\n <span class=\"actor-full-name\" [title]=\"actor.actorFullname\">{{ actor.actorFullname\r\n }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-briefcase\"></i>\r\n <span [title]=\"actor.actorJobName\">{{ actor.actorJobName || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-mail\"></i>\r\n <span [title]=\"actor.actorEmail\">{{ actor.actorEmail }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-hash\"></i>\r\n <span [title]=\"actor.actorEmployeeCode\">{{ actor.actorEmployeeCode }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-check-circle\"></i>\r\n <span [title]=\"actor.status\">{{ actor.status || 'Pending' }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-clock\"></i>\r\n <span [title]=\"actor.votedAt\">{{ actor.votedAt | tableCell: 'DATE_TIME' : lang }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!$steps().length) {\r\n <div class=\"step-column\">\r\n <div class=\"step-header empty\">No steps</div>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"workflow-wrapper\">\r\n <div class=\"step-column\">\r\n <div class=\"step-header empty\">\u26A0 No steps to display</div>\r\n </div>\r\n </div>\r\n }\r\n</div>", styles: [".runtime-routing-container{--card-height: 180px;font-size:13px}.runtime-routing-container .workflow-wrapper{display:flex;flex-direction:row;gap:64px;padding:24px;background:#f5f5f5;overflow-x:auto;min-width:576px;min-height:200px}.runtime-routing-container .workflow-wrapper .step-column{width:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;position:relative;min-height:100%}.runtime-routing-container .workflow-wrapper .step-header{position:relative;font-weight:600;font-size:14px;text-align:center;border:1px solid #ccc;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:6px 10px;margin-bottom:10px;width:100%;color:#fff}.runtime-routing-container .workflow-wrapper .step-header.submit{background-color:#00bcd4}.runtime-routing-container .workflow-wrapper .step-header.approval{background-color:#f80}.runtime-routing-container .workflow-wrapper .step-header.cc{background-color:#3370ff}.runtime-routing-container .workflow-wrapper .step-header.handle{background-color:#935af6}.runtime-routing-container .workflow-wrapper .step-header.end{background-color:#673ab7}.runtime-routing-container .workflow-wrapper .step-header.resolved{box-shadow:0 0 0 3px #4caf50 inset}.runtime-routing-container .workflow-wrapper .step-header.empty{box-shadow:0 0 0 3px #ff9800 inset}.runtime-routing-container .workflow-wrapper .step-header.fallback{box-shadow:0 0 0 3px #03a9f4 inset}.runtime-routing-container .workflow-wrapper .step-header.error{box-shadow:0 0 0 3px #f44336 inset}.runtime-routing-container .workflow-wrapper .actor-card-aux{position:relative}.runtime-routing-container .workflow-wrapper .actor-card.d-flex{display:flex;align-items:center;justify-content:flex-start;width:240px;height:var(--card-height);font-size:13px;border:1px solid #ccc;padding:0 12px;margin:8px auto;box-shadow:0 1px 3px #0000001a;position:relative;background-color:#fff;border-radius:8px}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .actor-details .actor-line>span{font-weight:700;width:140px;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .actor-details .actor-line>span.actor-full-name{color:#000}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper{flex-shrink:0;margin-right:8px}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon{width:40px;height:40px;border-radius:50%;font-family:feather;font-size:40px}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.pending:after{content:\"\\e939\";color:#848484}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.wait:after{content:\"\\e98a\";color:#848484}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.sent:after{content:\"\\e92c\";color:#4caf50}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.approved:after{content:\"\\e92c\";color:#4caf50}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.skipped:after{content:\"\\e92c\";color:#4caf50}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.completed:after{content:\"\\e92c\";color:#4caf50}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.rejected:after{content:\"\\e9d0\";color:red}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .actor-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid #ccc}.runtime-routing-container .workflow-wrapper .step-column:not(:first-child) .actor-card:before{content:\"\";position:absolute;top:50%;left:-20px;width:16px;height:2px;background-color:#ccc}.runtime-routing-container .workflow-wrapper .step-column:not(:first-child) .actor-card-aux:not(:last-child) .actor-card:after{content:\"\";position:absolute;top:50%;left:-20px;width:2px;height:calc(100% + 10px);background-color:#ccc}.runtime-routing-container .workflow-wrapper .step-column:not(:last-child) .actor-card-aux:before{content:\"\";position:absolute;top:50%;right:-16px;width:16px;height:2px;background-color:#ccc}.runtime-routing-container .workflow-wrapper .step-column:not(:last-child) .actor-card-aux:not(:last-child):after{content:\"\";position:absolute;top:50%;right:-16px;width:2px;height:calc(100% + 10px);background-color:#ccc}.runtime-routing-container .workflow-wrapper .step-column-aux{position:relative}.runtime-routing-container .workflow-wrapper .step-column:not(:last-child) .step-column-aux:after{content:\"\";position:absolute;top:calc(50% + 18.5px);right:-48px;width:32px;height:2px;background-color:#ccc}.runtime-routing-container .workflow-wrapper .actor-card.submit{background-color:#e0f7fa;border-left:4px solid #00bcd4}.runtime-routing-container .workflow-wrapper .actor-card.approval{background-color:#fff3e0;border-left:4px solid #f80}.runtime-routing-container .workflow-wrapper .actor-card.cc{background-color:#e6ecff;border-left:4px solid #3370ff}.runtime-routing-container .workflow-wrapper .actor-card.handle{background-color:#f3e6ff;border-left:4px solid #935af6}.runtime-routing-container .workflow-wrapper .actor-card.end{background-color:#ede7f6;border-left:4px solid #673ab7}.runtime-routing-container .workflow-wrapper .actor-line{display:flex;align-items:center;gap:6px;margin:2px 0;height:23.5px}.runtime-routing-container .workflow-wrapper .actor-line i{width:16px;height:16px;font-size:16px;color:#848484}.runtime-routing-container .workflow-wrapper .actor-line input.email-debug-input{border:1px dashed #00bcd4;background-color:#e0f7fa;width:140px;padding:0 8px}.runtime-routing-container .workflow-wrapper .actor-card span{display:block;color:#555;margin:2px 0}@media (max-width: 576px){.runtime-routing-container .workflow-wrapper .workflow-wrapper{flex-direction:column;align-items:center;gap:24px}.runtime-routing-container .workflow-wrapper .step-column{width:90vw}.runtime-routing-container .workflow-wrapper .actor-card{width:100%}}.runtime-routing-container .p-relative{position:relative}.runtime-routing-container .routing-preview-header{display:flex;align-items:center;justify-content:space-between;height:35px;margin-bottom:15px}.runtime-routing-container .routing-preview-header .button-group{display:flex;align-items:center;justify-content:flex-start;gap:8px;height:35px}.runtime-routing-container .routing-preview-header .button-group button{border-radius:0;color:#fff;height:35px;font-size:13px}.runtime-routing-container .routing-preview-header .debug-group{display:flex;align-items:center;justify-content:flex-start;height:35px}.runtime-routing-container .routing-preview-header .debug-group label{-webkit-user-select:none;user-select:none;margin-right:8px}.runtime-routing-container h5{padding:15px;color:#848484}.runtime-routing-container .resolved-steps pre{padding:15px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ImageErrorResolverDirective, selector: "[appImageErrorResolver]", inputs: ["type", "isFemale"] }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: RuntimeRoutingComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ selector: 'runtime-routing', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
41
|
+
NgClass,
|
|
42
|
+
ImageErrorResolverDirective,
|
|
43
|
+
MapAvatarToServerPipe,
|
|
44
|
+
TableCellPipe,
|
|
45
|
+
JsonPipe,
|
|
46
|
+
], template: "<div class=\"runtime-routing-container inter-font p-relative\">\r\n @if ($instance() && $steps()?.length) {\r\n <div class=\"workflow-wrapper\">\r\n @for (step of $steps(); track step.id) {\r\n\r\n <div class=\"step-column\" [attr.data-actor-count]=\"step.stepProgressActors?.length\">\r\n\r\n <div class=\"step-column-aux\">\r\n <div [ngClass]=\"step.exeConfig?.routingLogic ?? ''\" class=\"step-header {{ step.stepType.toLowerCase() }} {{ getStepStatusClass(step) }}\">\r\n {{ step.stepName }}\r\n </div>\r\n\r\n @for (actor of step.stepProgressActors; track actor.id) {\r\n <div class=\"actor-card-aux\">\r\n <div class=\"actor-card d-flex d-flex-start {{ step.stepType.toLowerCase() }}\">\r\n <div class=\"avatar-wrapper\">\r\n <img [src]=\"actor.actorAvatar\"\r\n appImageErrorResolver\r\n [type]=\"'AVATAR'\"\r\n [isFemale]=\"!!actor.isFemale!\"\r\n class=\"actor-avatar\" [alt]=\"actor.actorFullname\" />\r\n <div class=\"status-icon\" [ngClass]=\"(actor.status || 'pending').toLowerCase()\">\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"actor-details\">\r\n <div class=\"actor-line\">\r\n <i class=\"feather-user\"></i>\r\n <span class=\"actor-full-name\" [title]=\"actor.actorFullname\">{{ actor.actorFullname\r\n }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-briefcase\"></i>\r\n <span [title]=\"actor.actorJobName\">{{ actor.actorJobName || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-mail\"></i>\r\n <span [title]=\"actor.actorEmail\">{{ actor.actorEmail }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-hash\"></i>\r\n <span [title]=\"actor.actorEmployeeCode\">{{ actor.actorEmployeeCode }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-check-circle\"></i>\r\n <span [title]=\"actor.status\">{{ actor.status || 'Pending' }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-clock\"></i>\r\n <span [title]=\"actor.votedAt\">{{ actor.votedAt | tableCell: 'DATE_TIME' : lang }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!$steps().length) {\r\n <div class=\"step-column\">\r\n <div class=\"step-header empty\">No steps</div>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"workflow-wrapper\">\r\n <div class=\"step-column\">\r\n <div class=\"step-header empty\">\u26A0 No steps to display</div>\r\n </div>\r\n </div>\r\n }\r\n</div>", styles: [".runtime-routing-container{--card-height: 180px;font-size:13px}.runtime-routing-container .workflow-wrapper{display:flex;flex-direction:row;gap:64px;padding:24px;background:#f5f5f5;overflow-x:auto;min-width:576px;min-height:200px}.runtime-routing-container .workflow-wrapper .step-column{width:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;position:relative;min-height:100%}.runtime-routing-container .workflow-wrapper .step-header{position:relative;font-weight:600;font-size:14px;text-align:center;border:1px solid #ccc;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:6px 10px;margin-bottom:10px;width:100%;color:#fff}.runtime-routing-container .workflow-wrapper .step-header.submit{background-color:#00bcd4}.runtime-routing-container .workflow-wrapper .step-header.approval{background-color:#f80}.runtime-routing-container .workflow-wrapper .step-header.cc{background-color:#3370ff}.runtime-routing-container .workflow-wrapper .step-header.handle{background-color:#935af6}.runtime-routing-container .workflow-wrapper .step-header.end{background-color:#673ab7}.runtime-routing-container .workflow-wrapper .step-header.resolved{box-shadow:0 0 0 3px #4caf50 inset}.runtime-routing-container .workflow-wrapper .step-header.empty{box-shadow:0 0 0 3px #ff9800 inset}.runtime-routing-container .workflow-wrapper .step-header.fallback{box-shadow:0 0 0 3px #03a9f4 inset}.runtime-routing-container .workflow-wrapper .step-header.error{box-shadow:0 0 0 3px #f44336 inset}.runtime-routing-container .workflow-wrapper .actor-card-aux{position:relative}.runtime-routing-container .workflow-wrapper .actor-card.d-flex{display:flex;align-items:center;justify-content:flex-start;width:240px;height:var(--card-height);font-size:13px;border:1px solid #ccc;padding:0 12px;margin:8px auto;box-shadow:0 1px 3px #0000001a;position:relative;background-color:#fff;border-radius:8px}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .actor-details .actor-line>span{font-weight:700;width:140px;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .actor-details .actor-line>span.actor-full-name{color:#000}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper{flex-shrink:0;margin-right:8px}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon{width:40px;height:40px;border-radius:50%;font-family:feather;font-size:40px}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.pending:after{content:\"\\e939\";color:#848484}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.wait:after{content:\"\\e98a\";color:#848484}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.sent:after{content:\"\\e92c\";color:#4caf50}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.approved:after{content:\"\\e92c\";color:#4caf50}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.skipped:after{content:\"\\e92c\";color:#4caf50}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.completed:after{content:\"\\e92c\";color:#4caf50}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .avatar-wrapper .status-icon.rejected:after{content:\"\\e9d0\";color:red}.runtime-routing-container .workflow-wrapper .actor-card.d-flex .actor-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid #ccc}.runtime-routing-container .workflow-wrapper .step-column:not(:first-child) .actor-card:before{content:\"\";position:absolute;top:50%;left:-20px;width:16px;height:2px;background-color:#ccc}.runtime-routing-container .workflow-wrapper .step-column:not(:first-child) .actor-card-aux:not(:last-child) .actor-card:after{content:\"\";position:absolute;top:50%;left:-20px;width:2px;height:calc(100% + 10px);background-color:#ccc}.runtime-routing-container .workflow-wrapper .step-column:not(:last-child) .actor-card-aux:before{content:\"\";position:absolute;top:50%;right:-16px;width:16px;height:2px;background-color:#ccc}.runtime-routing-container .workflow-wrapper .step-column:not(:last-child) .actor-card-aux:not(:last-child):after{content:\"\";position:absolute;top:50%;right:-16px;width:2px;height:calc(100% + 10px);background-color:#ccc}.runtime-routing-container .workflow-wrapper .step-column-aux{position:relative}.runtime-routing-container .workflow-wrapper .step-column:not(:last-child) .step-column-aux:after{content:\"\";position:absolute;top:calc(50% + 18.5px);right:-48px;width:32px;height:2px;background-color:#ccc}.runtime-routing-container .workflow-wrapper .actor-card.submit{background-color:#e0f7fa;border-left:4px solid #00bcd4}.runtime-routing-container .workflow-wrapper .actor-card.approval{background-color:#fff3e0;border-left:4px solid #f80}.runtime-routing-container .workflow-wrapper .actor-card.cc{background-color:#e6ecff;border-left:4px solid #3370ff}.runtime-routing-container .workflow-wrapper .actor-card.handle{background-color:#f3e6ff;border-left:4px solid #935af6}.runtime-routing-container .workflow-wrapper .actor-card.end{background-color:#ede7f6;border-left:4px solid #673ab7}.runtime-routing-container .workflow-wrapper .actor-line{display:flex;align-items:center;gap:6px;margin:2px 0;height:23.5px}.runtime-routing-container .workflow-wrapper .actor-line i{width:16px;height:16px;font-size:16px;color:#848484}.runtime-routing-container .workflow-wrapper .actor-line input.email-debug-input{border:1px dashed #00bcd4;background-color:#e0f7fa;width:140px;padding:0 8px}.runtime-routing-container .workflow-wrapper .actor-card span{display:block;color:#555;margin:2px 0}@media (max-width: 576px){.runtime-routing-container .workflow-wrapper .workflow-wrapper{flex-direction:column;align-items:center;gap:24px}.runtime-routing-container .workflow-wrapper .step-column{width:90vw}.runtime-routing-container .workflow-wrapper .actor-card{width:100%}}.runtime-routing-container .p-relative{position:relative}.runtime-routing-container .routing-preview-header{display:flex;align-items:center;justify-content:space-between;height:35px;margin-bottom:15px}.runtime-routing-container .routing-preview-header .button-group{display:flex;align-items:center;justify-content:flex-start;gap:8px;height:35px}.runtime-routing-container .routing-preview-header .button-group button{border-radius:0;color:#fff;height:35px;font-size:13px}.runtime-routing-container .routing-preview-header .debug-group{display:flex;align-items:center;justify-content:flex-start;height:35px}.runtime-routing-container .routing-preview-header .debug-group label{-webkit-user-select:none;user-select:none;margin-right:8px}.runtime-routing-container h5{padding:15px;color:#848484}.runtime-routing-container .resolved-steps pre{padding:15px}\n"] }]
|
|
47
|
+
}], ctorParameters: () => [{ type: MultiLanguageService }] });
|
|
48
|
+
|
|
49
|
+
class RuntimeLogsComponent extends BaseComponent {
|
|
50
|
+
constructor() {
|
|
51
|
+
super(...arguments);
|
|
52
|
+
this.$instance = input(null);
|
|
53
|
+
this.$logs = computed(() => this.$instance()?.workflowLogs);
|
|
54
|
+
}
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: RuntimeLogsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: RuntimeLogsComponent, isStandalone: true, selector: "runtime-logs", inputs: { $instance: { classPropertyName: "$instance", publicName: "$instance", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"runtime-logs-wrapper\">\r\n <h4><i class=\"feather-list\"></i> Logs</h4>\r\n\r\n @if (!$logs()?.length) {\r\n <div class=\"empty-log\">\r\n <i class=\"feather-info\"></i> No logs available.\r\n </div>\r\n } @else {\r\n <ul class=\"log-list\">\r\n @for (log of $logs(); track log.id) {\r\n <li class=\"log-item\">\r\n <div class=\"log-icon\"><i class=\"feather-clock\"></i></div>\r\n <div class=\"log-content\">\r\n <div class=\"log-time\">{{ log.occurredAt | tableCell : 'DATE_TIME' : lang }}</div>\r\n <div class=\"log-text\">{{ log.logText }}</div>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</div>", styles: [".runtime-logs-wrapper{font-size:13px;padding:16px;background-color:#f9f9f9}.runtime-logs-wrapper h4{display:flex;align-items:center;gap:8px;color:#333;margin-bottom:12px}.runtime-logs-wrapper h4 i{font-size:16px;color:#666}.runtime-logs-wrapper .empty-log{display:flex;align-items:center;gap:6px;font-size:13px;color:#999;font-style:italic}.runtime-logs-wrapper .empty-log i{color:#ccc}.runtime-logs-wrapper .log-list{list-style:none;margin:0;padding:0}.runtime-logs-wrapper .log-list .log-item{display:flex;align-items:flex-start;padding:8px 0;border-bottom:1px dashed #ddd}.runtime-logs-wrapper .log-list .log-item:last-child{border-bottom:none}.runtime-logs-wrapper .log-list .log-item .log-icon{margin-right:10px;color:#555;padding-top:2px}.runtime-logs-wrapper .log-list .log-item .log-content{flex:1}.runtime-logs-wrapper .log-list .log-item .log-content .log-time{font-size:12px;color:#888;margin-bottom:2px}.runtime-logs-wrapper .log-list .log-item .log-content .log-text{font-family:monospace;white-space:pre-wrap;color:#333}\n"], dependencies: [{ kind: "pipe", type: TableCellPipe // usage: value | tableCell : 'DATE_TIME' : lang
|
|
57
|
+
, name: "tableCell" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
58
|
+
}
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: RuntimeLogsComponent, decorators: [{
|
|
60
|
+
type: Component,
|
|
61
|
+
args: [{ selector: 'runtime-logs', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
62
|
+
TableCellPipe // usage: value | tableCell : 'DATE_TIME' : lang
|
|
63
|
+
], template: "<div class=\"runtime-logs-wrapper\">\r\n <h4><i class=\"feather-list\"></i> Logs</h4>\r\n\r\n @if (!$logs()?.length) {\r\n <div class=\"empty-log\">\r\n <i class=\"feather-info\"></i> No logs available.\r\n </div>\r\n } @else {\r\n <ul class=\"log-list\">\r\n @for (log of $logs(); track log.id) {\r\n <li class=\"log-item\">\r\n <div class=\"log-icon\"><i class=\"feather-clock\"></i></div>\r\n <div class=\"log-content\">\r\n <div class=\"log-time\">{{ log.occurredAt | tableCell : 'DATE_TIME' : lang }}</div>\r\n <div class=\"log-text\">{{ log.logText }}</div>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</div>", styles: [".runtime-logs-wrapper{font-size:13px;padding:16px;background-color:#f9f9f9}.runtime-logs-wrapper h4{display:flex;align-items:center;gap:8px;color:#333;margin-bottom:12px}.runtime-logs-wrapper h4 i{font-size:16px;color:#666}.runtime-logs-wrapper .empty-log{display:flex;align-items:center;gap:6px;font-size:13px;color:#999;font-style:italic}.runtime-logs-wrapper .empty-log i{color:#ccc}.runtime-logs-wrapper .log-list{list-style:none;margin:0;padding:0}.runtime-logs-wrapper .log-list .log-item{display:flex;align-items:flex-start;padding:8px 0;border-bottom:1px dashed #ddd}.runtime-logs-wrapper .log-list .log-item:last-child{border-bottom:none}.runtime-logs-wrapper .log-list .log-item .log-icon{margin-right:10px;color:#555;padding-top:2px}.runtime-logs-wrapper .log-list .log-item .log-content{flex:1}.runtime-logs-wrapper .log-list .log-item .log-content .log-time{font-size:12px;color:#888;margin-bottom:2px}.runtime-logs-wrapper .log-list .log-item .log-content .log-text{font-family:monospace;white-space:pre-wrap;color:#333}\n"] }]
|
|
64
|
+
}] });
|
|
65
|
+
|
|
66
|
+
class WfInstanceStatusComponent extends BaseComponent {
|
|
67
|
+
onCorePageHeaderButtonClicked(e) {
|
|
68
|
+
if (e.code === "HEADER_TERMINATE") {
|
|
69
|
+
this.$loading.set(true);
|
|
70
|
+
this.subscriptions.push(this.wfs.inject(`${this.$instance()?.workflowId}___${this.$correlationId()}`, "TERMINATED", "Random Terminate Test").pipe(catchError(err => {
|
|
71
|
+
this.$loading.set(false);
|
|
72
|
+
return of(err);
|
|
73
|
+
})).subscribe(x => {
|
|
74
|
+
this.$loading.set(false);
|
|
75
|
+
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
76
|
+
}
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
else if (e.code === "HEADER_DEBUG") {
|
|
80
|
+
this.$loading.set(true);
|
|
81
|
+
this.subscriptions.push(this.wfs.inject(`${this.$instance()?.workflowId}___${this.$correlationId()}`, "REVOKED", "Random Revoke Test", 10678).pipe(catchError(err => {
|
|
82
|
+
this.$loading.set(false);
|
|
83
|
+
return of(err);
|
|
84
|
+
})).subscribe(x => {
|
|
85
|
+
this.$loading.set(false);
|
|
86
|
+
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
87
|
+
}
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
refresh() {
|
|
92
|
+
const correlationId = this.$correlationId();
|
|
93
|
+
if (!!correlationId) {
|
|
94
|
+
this.subscriptions.push(this.appService.get(`/api/WorkflowEngine/GetStatus?correlationId=${correlationId}&usehub=true`).pipe(tap(_ => this.$loading.set(true)), catchError(err => {
|
|
95
|
+
this.$loading.set(false);
|
|
96
|
+
const msg = err?.error?.message || // API-defined message
|
|
97
|
+
err?.message || // Native JS or HttpErrorResponse
|
|
98
|
+
err?.statusText || // Fallback
|
|
99
|
+
'An unknown error occurred.';
|
|
100
|
+
return of({ ok: false, status: 500, body: { messageCode: msg } });
|
|
101
|
+
})).subscribe(x => {
|
|
102
|
+
this.$loading.set(false);
|
|
103
|
+
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
104
|
+
const raw = x.body.innerBody;
|
|
105
|
+
raw.attributes = JSON.parse(raw.attributesJson);
|
|
106
|
+
raw.stepProgresses.forEach(step => {
|
|
107
|
+
if (!!step.exeConfigJson) {
|
|
108
|
+
step.exeConfig = JSON.parse(step.exeConfigJson);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
step.exeConfig = {};
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
this.$instance.set(raw);
|
|
115
|
+
}
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
constructor(mls, ss, as) {
|
|
120
|
+
super(mls);
|
|
121
|
+
this.mls = mls;
|
|
122
|
+
this.ss = ss;
|
|
123
|
+
this.as = as;
|
|
124
|
+
this.route = inject(ActivatedRoute);
|
|
125
|
+
this.appService = inject(AppService);
|
|
126
|
+
this.wfs = inject(CoreWorkflowService);
|
|
127
|
+
this.$loading = signal(true);
|
|
128
|
+
this.$instance = signal(null);
|
|
129
|
+
this.$error = signal(null);
|
|
130
|
+
this.$correlationId = signal(null);
|
|
131
|
+
this.$attributesBeauty = computed(() => {
|
|
132
|
+
return JSON.stringify((this.$instance()?.attributes ?? {}), null, 2);
|
|
133
|
+
});
|
|
134
|
+
this.$isExpanded = signal(false);
|
|
135
|
+
effect(() => {
|
|
136
|
+
const status = ss.$workflowTicket();
|
|
137
|
+
if (status?.correlationId.toLocaleLowerCase() === this.$correlationId()?.toLocaleLowerCase()) {
|
|
138
|
+
this.as.info("The status has been changed", alertOptions);
|
|
139
|
+
this.refresh();
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
this.subscriptions.push(this.route.paramMap.subscribe(p => {
|
|
143
|
+
const correlationId = p.get('id');
|
|
144
|
+
this.$correlationId.set(correlationId);
|
|
145
|
+
}));
|
|
146
|
+
effect(() => {
|
|
147
|
+
const _ = this.$correlationId();
|
|
148
|
+
this.refresh();
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
toggleAccordion() {
|
|
152
|
+
this.$isExpanded.set(!this.$isExpanded());
|
|
153
|
+
}
|
|
154
|
+
copy(value) {
|
|
155
|
+
if (!value)
|
|
156
|
+
return;
|
|
157
|
+
navigator.clipboard.writeText(value.toString()).then(() => {
|
|
158
|
+
this.as.success('Copied!', alertOptions);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: WfInstanceStatusComponent, deps: [{ token: MultiLanguageService }, { token: SocketService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: WfInstanceStatusComponent, isStandalone: true, selector: "wf-instance-status", usesInheritance: true, ngImport: i0, template: "<div class=\"wf-instance-status-container\">\r\n <core-page-header [title]=\"'Workflow Instance Status'\" (buttonClick)=\"onCorePageHeaderButtonClicked($event)\"/>\r\n\r\n <div class=\"status-parts\">\r\n <div class=\"saga\">\r\n @if ($loading()) {\r\n <p class=\"wf-status-loading\">\r\n <core-terminal-spinner />\r\n </p>\r\n } @else if ($error()) {\r\n <p class=\"wf-status-error\">\u26A0\uFE0F {{ $error() }}</p>\r\n } @else if (!$instance()) {\r\n <p class=\"wf-status-empty\">No instance data found.</p>\r\n } @else {\r\n <div class=\"wf-status-card\">\r\n\r\n <!-- Workflow Info -->\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Workflow Name:</label>\r\n <span>{{ $instance()!.workflowName }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Current State:</label>\r\n <span class=\"wf-status-badge1 wf-status-{{ $instance()!.currentState.toLowerCase() }}\">\r\n {{ $instance()!.currentState }}\r\n </span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Current Step:</label>\r\n <span>{{ $instance()!.currentStepName || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Last Action At:</label>\r\n <span>{{ $instance()!.lastActionAt | tableCell : 'DATE_TIME' : lang }}</span>\r\n </div>\r\n\r\n <!-- First Actor Info -->\r\n <div class=\"wf-status-subtitle\">\uD83D\uDCCC First Actor</div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Full Name:</label>\r\n <span>{{ $instance()!.firstActorFullname }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Email:</label>\r\n <span>{{ $instance()!.firstActorEmail }}</span>\r\n </div>\r\n\r\n <!-- Last Actor Info -->\r\n <div class=\"wf-status-subtitle\">\uD83D\uDD0D Last Actor</div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Full Name:</label>\r\n <span>{{ $instance()!.lastActorFullname || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Email:</label>\r\n <span>{{ $instance()!.lastActorEmail || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Employee Code:</label>\r\n <span>{{ $instance()!.lastActorEmployeeCode || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Position Name:</label>\r\n <span>{{ $instance()!.lastActorPositionName || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Job Name:</label>\r\n <span>{{ $instance()!.lastActorJobName || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>System Messages:</label>\r\n <span>{{ $instance()!.systemMessages || '\u2014' }}</span>\r\n </div>\r\n\r\n <!-- Show More Section -->\r\n\r\n <div class=\"wf-status-accordion\">\r\n <button class=\"accordion-summary\" (click)=\"toggleAccordion()\">\r\n <span><i [ngClass]=\"$isExpanded() ? 'feather-minus' : 'feather-plus'\"></i></span> {{ $isExpanded() ? 'Hide Details' : 'Show More' }}\r\n </button>\r\n\r\n <div class=\"accordion-body\" [style.maxHeight]=\"$isExpanded() ? '1000px' : '0'\"\r\n [style.opacity]=\"$isExpanded() ? '1' : '0'\" [style.pointerEvents]=\"$isExpanded() ? 'auto' : 'none'\">\r\n <div class=\"wf-status-row\">\r\n <label>Workflow ID:</label>\r\n <span>\r\n {{ $instance()!.workflowId }}\r\n </span>\r\n <button type=\"button\" (click)=\"copy($instance()!.workflowId)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Employee ID:</label>\r\n <span>\r\n {{ $instance()!.lastActorEmployeeId }}\r\n </span>\r\n <button type=\"button\" (click)=\"copy($instance()!.lastActorEmployeeId)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Last Triggered Step ID:</label>\r\n <span>\r\n {{ $instance()!.lastTriggeredStepId || '\u2014' }}\r\n </span>\r\n @if ($instance()!.lastTriggeredStepId) {\r\n <button type=\"button\" (click)=\"copy($instance()!.lastTriggeredStepId)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n }\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Attributes JSON:</label>\r\n <span>\r\n <code>{{ $attributesBeauty() }}</code>\r\n </span>\r\n <button type=\"button\" (click)=\"copy($instance()!.attributesJson)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Debug Mode:</label>\r\n <span>{{ $instance()!.isDebug ? '\u2714 Enabled' : '\u274C Disabled' }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"runtime-routing-n-logs\">\r\n <runtime-routing [$instance]=\"$instance()\" />\r\n <div class=\"h15\"></div>\r\n <runtime-logs [$instance]=\"$instance()\" />\r\n </div>\r\n </div>\r\n</div>", styles: [".wf-instance-status-container .status-parts{display:flex;width:100%;overflow:auto}.wf-instance-status-container .status-parts .saga{width:480px;padding:15px;background-color:#fdfdfd;border:1px solid #e5e7eb;font-size:13px;display:inline-block}.wf-instance-status-container .status-parts .saga .wf-status-title{margin-bottom:1.5rem;color:#1f2937}.wf-instance-status-container .status-parts .saga .wf-status-loading,.wf-instance-status-container .status-parts .saga .wf-status-empty{color:#3b82f6}.wf-instance-status-container .status-parts .saga .wf-status-error{color:#dc2626}.wf-instance-status-container .status-parts .saga .wf-status-card{background-color:#fff;padding:15px;border:1px solid #d1d5db;display:flex;flex-direction:column;gap:8px}.wf-instance-status-container .status-parts .saga .wf-status-section-title{background-color:#e0f2fe;color:#0284c7;padding:15px;border-left:4px solid #38bdf8;border-radius:4px;margin-bottom:.25rem}.wf-instance-status-container .status-parts .saga .wf-status-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;border-bottom:1px dashed #e5e7eb;padding-bottom:8px}.wf-instance-status-container .status-parts .saga .wf-status-row label{color:#374151;width:120px}.wf-instance-status-container .status-parts .saga .wf-status-row span{font-family:monospace;color:#111827;width:280px}.wf-instance-status-container .status-parts .saga .wf-status-row span:not(:has(code)){overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.wf-instance-status-container .status-parts .saga .wf-status-badge{display:inline-block;padding:15px;border-radius:9999px;text-transform:uppercase}.wf-instance-status-container .status-parts .saga .wf-status-approved{background-color:#d1fae5;color:#065f46}.wf-instance-status-container .status-parts .saga .wf-status-revoked,.wf-instance-status-container .status-parts .saga .wf-status-terminated,.wf-instance-status-container .status-parts .saga .wf-status-rejected{background-color:#fee2e2;color:#991b1b}.wf-instance-status-container .status-parts .saga .wf-status-in_progress{background-color:#fef3c7;color:#92400e}.wf-instance-status-container .status-parts .saga .wf-status-debug-true{background-color:#e0f2fe;color:#0369a1;padding:15px}.wf-instance-status-container .status-parts .saga .wf-status-debug-false{background-color:#f3f4f6;color:#6b7280;padding:15px}.wf-instance-status-container .status-parts .saga .wf-status-actor-card{background-color:#f0fdf4;border:1px dashed #34d399;padding:15px;display:flex;flex-direction:column;gap:.5rem}.wf-instance-status-container .status-parts .saga .wf-status-actor-card .wf-status-row{border:none;padding:0}.wf-instance-status-container .status-parts .saga .wf-status-actor-card label,.wf-instance-status-container .status-parts .saga .wf-status-actor-card span{color:#065f46}.wf-instance-status-container .status-parts .saga .wf-status-accordion{margin-top:1rem;border-top:1px dashed #ccc;padding-top:1rem}.wf-instance-status-container .status-parts .saga .accordion-summary{background:none;border:none;cursor:pointer;padding:.5rem 0;color:#444;transition:color .2s}.wf-instance-status-container .status-parts .saga .accordion-summary:hover{color:#000}.wf-instance-status-container .status-parts .saga .accordion-body{overflow:hidden;transition:max-height .3s ease,opacity .3s ease}.wf-instance-status-container .status-parts .saga .copy-btn{background:none;border:none;cursor:pointer;font-size:1em;margin-left:.5rem;color:#888}.wf-instance-status-container .status-parts .saga .copy-btn:hover{color:#000}.wf-instance-status-container .status-parts .runtime-routing-n-logs{margin-left:15px;display:inline-block}.wf-instance-status-container .status-parts .runtime-routing-n-logs .h15{height:15px}\n"], dependencies: [{ kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup", "htmlTooltipRef"], outputs: ["buttonClick"] }, { kind: "component", type: CoreTerminalSpinnerComponent, selector: "core-terminal-spinner" }, { kind: "component", type: RuntimeRoutingComponent, selector: "runtime-routing", inputs: ["$instance"] }, { kind: "component", type: RuntimeLogsComponent, selector: "runtime-logs", inputs: ["$instance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
163
|
+
}
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: WfInstanceStatusComponent, decorators: [{
|
|
165
|
+
type: Component,
|
|
166
|
+
args: [{ selector: 'wf-instance-status', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
167
|
+
TableCellPipe,
|
|
168
|
+
NgClass,
|
|
169
|
+
CorePageHeaderComponent,
|
|
170
|
+
CoreTerminalSpinnerComponent,
|
|
171
|
+
RuntimeRoutingComponent,
|
|
172
|
+
RuntimeLogsComponent,
|
|
173
|
+
], template: "<div class=\"wf-instance-status-container\">\r\n <core-page-header [title]=\"'Workflow Instance Status'\" (buttonClick)=\"onCorePageHeaderButtonClicked($event)\"/>\r\n\r\n <div class=\"status-parts\">\r\n <div class=\"saga\">\r\n @if ($loading()) {\r\n <p class=\"wf-status-loading\">\r\n <core-terminal-spinner />\r\n </p>\r\n } @else if ($error()) {\r\n <p class=\"wf-status-error\">\u26A0\uFE0F {{ $error() }}</p>\r\n } @else if (!$instance()) {\r\n <p class=\"wf-status-empty\">No instance data found.</p>\r\n } @else {\r\n <div class=\"wf-status-card\">\r\n\r\n <!-- Workflow Info -->\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Workflow Name:</label>\r\n <span>{{ $instance()!.workflowName }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Current State:</label>\r\n <span class=\"wf-status-badge1 wf-status-{{ $instance()!.currentState.toLowerCase() }}\">\r\n {{ $instance()!.currentState }}\r\n </span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Current Step:</label>\r\n <span>{{ $instance()!.currentStepName || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Last Action At:</label>\r\n <span>{{ $instance()!.lastActionAt | tableCell : 'DATE_TIME' : lang }}</span>\r\n </div>\r\n\r\n <!-- First Actor Info -->\r\n <div class=\"wf-status-subtitle\">\uD83D\uDCCC First Actor</div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Full Name:</label>\r\n <span>{{ $instance()!.firstActorFullname }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Email:</label>\r\n <span>{{ $instance()!.firstActorEmail }}</span>\r\n </div>\r\n\r\n <!-- Last Actor Info -->\r\n <div class=\"wf-status-subtitle\">\uD83D\uDD0D Last Actor</div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Full Name:</label>\r\n <span>{{ $instance()!.lastActorFullname || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Email:</label>\r\n <span>{{ $instance()!.lastActorEmail || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Employee Code:</label>\r\n <span>{{ $instance()!.lastActorEmployeeCode || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Position Name:</label>\r\n <span>{{ $instance()!.lastActorPositionName || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Job Name:</label>\r\n <span>{{ $instance()!.lastActorJobName || '\u2014' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>System Messages:</label>\r\n <span>{{ $instance()!.systemMessages || '\u2014' }}</span>\r\n </div>\r\n\r\n <!-- Show More Section -->\r\n\r\n <div class=\"wf-status-accordion\">\r\n <button class=\"accordion-summary\" (click)=\"toggleAccordion()\">\r\n <span><i [ngClass]=\"$isExpanded() ? 'feather-minus' : 'feather-plus'\"></i></span> {{ $isExpanded() ? 'Hide Details' : 'Show More' }}\r\n </button>\r\n\r\n <div class=\"accordion-body\" [style.maxHeight]=\"$isExpanded() ? '1000px' : '0'\"\r\n [style.opacity]=\"$isExpanded() ? '1' : '0'\" [style.pointerEvents]=\"$isExpanded() ? 'auto' : 'none'\">\r\n <div class=\"wf-status-row\">\r\n <label>Workflow ID:</label>\r\n <span>\r\n {{ $instance()!.workflowId }}\r\n </span>\r\n <button type=\"button\" (click)=\"copy($instance()!.workflowId)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Employee ID:</label>\r\n <span>\r\n {{ $instance()!.lastActorEmployeeId }}\r\n </span>\r\n <button type=\"button\" (click)=\"copy($instance()!.lastActorEmployeeId)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Last Triggered Step ID:</label>\r\n <span>\r\n {{ $instance()!.lastTriggeredStepId || '\u2014' }}\r\n </span>\r\n @if ($instance()!.lastTriggeredStepId) {\r\n <button type=\"button\" (click)=\"copy($instance()!.lastTriggeredStepId)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n }\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Attributes JSON:</label>\r\n <span>\r\n <code>{{ $attributesBeauty() }}</code>\r\n </span>\r\n <button type=\"button\" (click)=\"copy($instance()!.attributesJson)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Debug Mode:</label>\r\n <span>{{ $instance()!.isDebug ? '\u2714 Enabled' : '\u274C Disabled' }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"runtime-routing-n-logs\">\r\n <runtime-routing [$instance]=\"$instance()\" />\r\n <div class=\"h15\"></div>\r\n <runtime-logs [$instance]=\"$instance()\" />\r\n </div>\r\n </div>\r\n</div>", styles: [".wf-instance-status-container .status-parts{display:flex;width:100%;overflow:auto}.wf-instance-status-container .status-parts .saga{width:480px;padding:15px;background-color:#fdfdfd;border:1px solid #e5e7eb;font-size:13px;display:inline-block}.wf-instance-status-container .status-parts .saga .wf-status-title{margin-bottom:1.5rem;color:#1f2937}.wf-instance-status-container .status-parts .saga .wf-status-loading,.wf-instance-status-container .status-parts .saga .wf-status-empty{color:#3b82f6}.wf-instance-status-container .status-parts .saga .wf-status-error{color:#dc2626}.wf-instance-status-container .status-parts .saga .wf-status-card{background-color:#fff;padding:15px;border:1px solid #d1d5db;display:flex;flex-direction:column;gap:8px}.wf-instance-status-container .status-parts .saga .wf-status-section-title{background-color:#e0f2fe;color:#0284c7;padding:15px;border-left:4px solid #38bdf8;border-radius:4px;margin-bottom:.25rem}.wf-instance-status-container .status-parts .saga .wf-status-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;border-bottom:1px dashed #e5e7eb;padding-bottom:8px}.wf-instance-status-container .status-parts .saga .wf-status-row label{color:#374151;width:120px}.wf-instance-status-container .status-parts .saga .wf-status-row span{font-family:monospace;color:#111827;width:280px}.wf-instance-status-container .status-parts .saga .wf-status-row span:not(:has(code)){overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.wf-instance-status-container .status-parts .saga .wf-status-badge{display:inline-block;padding:15px;border-radius:9999px;text-transform:uppercase}.wf-instance-status-container .status-parts .saga .wf-status-approved{background-color:#d1fae5;color:#065f46}.wf-instance-status-container .status-parts .saga .wf-status-revoked,.wf-instance-status-container .status-parts .saga .wf-status-terminated,.wf-instance-status-container .status-parts .saga .wf-status-rejected{background-color:#fee2e2;color:#991b1b}.wf-instance-status-container .status-parts .saga .wf-status-in_progress{background-color:#fef3c7;color:#92400e}.wf-instance-status-container .status-parts .saga .wf-status-debug-true{background-color:#e0f2fe;color:#0369a1;padding:15px}.wf-instance-status-container .status-parts .saga .wf-status-debug-false{background-color:#f3f4f6;color:#6b7280;padding:15px}.wf-instance-status-container .status-parts .saga .wf-status-actor-card{background-color:#f0fdf4;border:1px dashed #34d399;padding:15px;display:flex;flex-direction:column;gap:.5rem}.wf-instance-status-container .status-parts .saga .wf-status-actor-card .wf-status-row{border:none;padding:0}.wf-instance-status-container .status-parts .saga .wf-status-actor-card label,.wf-instance-status-container .status-parts .saga .wf-status-actor-card span{color:#065f46}.wf-instance-status-container .status-parts .saga .wf-status-accordion{margin-top:1rem;border-top:1px dashed #ccc;padding-top:1rem}.wf-instance-status-container .status-parts .saga .accordion-summary{background:none;border:none;cursor:pointer;padding:.5rem 0;color:#444;transition:color .2s}.wf-instance-status-container .status-parts .saga .accordion-summary:hover{color:#000}.wf-instance-status-container .status-parts .saga .accordion-body{overflow:hidden;transition:max-height .3s ease,opacity .3s ease}.wf-instance-status-container .status-parts .saga .copy-btn{background:none;border:none;cursor:pointer;font-size:1em;margin-left:.5rem;color:#888}.wf-instance-status-container .status-parts .saga .copy-btn:hover{color:#000}.wf-instance-status-container .status-parts .runtime-routing-n-logs{margin-left:15px;display:inline-block}.wf-instance-status-container .status-parts .runtime-routing-n-logs .h15{height:15px}\n"] }]
|
|
174
|
+
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: SocketService }, { type: AlertService }] });
|
|
175
|
+
|
|
176
|
+
export { WfInstanceStatusComponent };
|
|
177
|
+
//# sourceMappingURL=ngx-histaff-alpha-wf-instance-status.component-oBkeUjfP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-histaff-alpha-wf-instance-status.component-oBkeUjfP.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/runtime-routing/runtime-routing.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/runtime-routing/runtime-routing.component.html","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/runtime-logs/runtime-logs.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/runtime-logs/runtime-logs.component.html","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/wf-instance-status/wf-instance-status.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/wf-instance-status/wf-instance-status.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, inject, input, Input } from '@angular/core';\r\nimport { IWorkflowInstance } from '../interfaces/IWorkflowInstance';\r\nimport { IWorkflowStepProgress } from '../interfaces/IWorkflowStepProgress';\r\nimport { IWorkflowStepProgressActor } from '../interfaces/IWorkflowStepProgressActor';\r\nimport { ImageErrorResolverDirective } from '../../../directives/image-error-resolver.directive';\r\nimport { MapAvatarToServerPipe } from '../../../app-pipes/map-avatar-to-server.pipe';\r\nimport { TableCellPipe } from '../../pipes/table-cell.pipe';\r\nimport { BaseComponent } from '../../base-component/base/base.component';\r\nimport { JsonPipe, NgClass } from '@angular/common';\r\nimport { SocketService } from '../../../services/socket.service';\r\nimport { MultiLanguageService } from '../../../services/multi-language.service';\r\nimport { AlertService } from '../../alert/alert.service';\r\nimport { alertOptions } from '../../../constants/alertOptions';\r\n\r\n@Component({\r\n selector: 'runtime-routing',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n NgClass,\r\n ImageErrorResolverDirective,\r\n MapAvatarToServerPipe,\r\n TableCellPipe,\r\n JsonPipe,\r\n ],\r\n templateUrl: './runtime-routing.component.html',\r\n styleUrl: './runtime-routing.component.scss'\r\n})\r\nexport class RuntimeRoutingComponent extends BaseComponent {\r\n $instance = input<IWorkflowInstance | null>();\r\n\r\n as = inject(AlertService);\r\n\r\n $steps = computed(() => {\r\n const stepProgresses = this.$instance()?.stepProgresses ?? [];\r\n stepProgresses.forEach(s => {\r\n if (!!s.exeConfigJson) {\r\n s.exeConfig = JSON.parse(s.exeConfigJson);\r\n } else {\r\n s.exeConfig = {};\r\n }\r\n \r\n })\r\n stepProgresses.sort((a, b) => a.stepOrder - b.stepOrder);\r\n return [...stepProgresses];\r\n })\r\n\r\n getStepStatusClass(step: IWorkflowStepProgress): string {\r\n if (step.passed === true) return 'resolved';\r\n if (step.passed === false) return 'error';\r\n return 'empty';\r\n }\r\n\r\n constructor(public override mls: MultiLanguageService) {\r\n super(mls);\r\n }\r\n}\r\n","<div class=\"runtime-routing-container inter-font p-relative\">\r\n @if ($instance() && $steps()?.length) {\r\n <div class=\"workflow-wrapper\">\r\n @for (step of $steps(); track step.id) {\r\n\r\n <div class=\"step-column\" [attr.data-actor-count]=\"step.stepProgressActors?.length\">\r\n\r\n <div class=\"step-column-aux\">\r\n <div [ngClass]=\"step.exeConfig?.routingLogic ?? ''\" class=\"step-header {{ step.stepType.toLowerCase() }} {{ getStepStatusClass(step) }}\">\r\n {{ step.stepName }}\r\n </div>\r\n\r\n @for (actor of step.stepProgressActors; track actor.id) {\r\n <div class=\"actor-card-aux\">\r\n <div class=\"actor-card d-flex d-flex-start {{ step.stepType.toLowerCase() }}\">\r\n <div class=\"avatar-wrapper\">\r\n <img [src]=\"actor.actorAvatar\"\r\n appImageErrorResolver\r\n [type]=\"'AVATAR'\"\r\n [isFemale]=\"!!actor.isFemale!\"\r\n class=\"actor-avatar\" [alt]=\"actor.actorFullname\" />\r\n <div class=\"status-icon\" [ngClass]=\"(actor.status || 'pending').toLowerCase()\">\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"actor-details\">\r\n <div class=\"actor-line\">\r\n <i class=\"feather-user\"></i>\r\n <span class=\"actor-full-name\" [title]=\"actor.actorFullname\">{{ actor.actorFullname\r\n }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-briefcase\"></i>\r\n <span [title]=\"actor.actorJobName\">{{ actor.actorJobName || '—' }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-mail\"></i>\r\n <span [title]=\"actor.actorEmail\">{{ actor.actorEmail }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-hash\"></i>\r\n <span [title]=\"actor.actorEmployeeCode\">{{ actor.actorEmployeeCode }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-check-circle\"></i>\r\n <span [title]=\"actor.status\">{{ actor.status || 'Pending' }}</span>\r\n </div>\r\n\r\n <div class=\"actor-line\">\r\n <i class=\"feather-clock\"></i>\r\n <span [title]=\"actor.votedAt\">{{ actor.votedAt | tableCell: 'DATE_TIME' : lang }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!$steps().length) {\r\n <div class=\"step-column\">\r\n <div class=\"step-header empty\">No steps</div>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"workflow-wrapper\">\r\n <div class=\"step-column\">\r\n <div class=\"step-header empty\">⚠ No steps to display</div>\r\n </div>\r\n </div>\r\n }\r\n</div>","import { ChangeDetectionStrategy, Component, computed, input, Input } from '@angular/core';\r\nimport { IWorkflowInstance } from '../interfaces/IWorkflowInstance';\r\nimport { IWorkflowStepProgress } from '../interfaces/IWorkflowStepProgress';\r\nimport { IWorkflowStepProgressActor } from '../interfaces/IWorkflowStepProgressActor';\r\nimport { ImageErrorResolverDirective } from '../../../directives/image-error-resolver.directive';\r\nimport { MapAvatarToServerPipe } from '../../../app-pipes/map-avatar-to-server.pipe';\r\nimport { TableCellPipe } from '../../pipes/table-cell.pipe';\r\nimport { BaseComponent } from '../../base-component/base/base.component';\r\nimport { JsonPipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'runtime-logs',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n TableCellPipe // usage: value | tableCell : 'DATE_TIME' : lang\r\n ],\r\n templateUrl: './runtime-logs.component.html',\r\n styleUrl: './runtime-logs.component.scss'\r\n})\r\nexport class RuntimeLogsComponent extends BaseComponent {\r\n $instance = input<IWorkflowInstance | null>(null);\r\n\r\n $logs = computed(() => this.$instance()?.workflowLogs);\r\n}\r\n","<div class=\"runtime-logs-wrapper\">\r\n <h4><i class=\"feather-list\"></i> Logs</h4>\r\n\r\n @if (!$logs()?.length) {\r\n <div class=\"empty-log\">\r\n <i class=\"feather-info\"></i> No logs available.\r\n </div>\r\n } @else {\r\n <ul class=\"log-list\">\r\n @for (log of $logs(); track log.id) {\r\n <li class=\"log-item\">\r\n <div class=\"log-icon\"><i class=\"feather-clock\"></i></div>\r\n <div class=\"log-content\">\r\n <div class=\"log-time\">{{ log.occurredAt | tableCell : 'DATE_TIME' : lang }}</div>\r\n <div class=\"log-text\">{{ log.logText }}</div>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</div>","import { ChangeDetectionStrategy, Component, computed, effect, inject, signal } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AppService } from '../../../services/app.service';\r\nimport { BaseComponent } from '../../base-component/base/base.component';\r\nimport { MultiLanguageService } from '../../../services/multi-language.service';\r\nimport { catchError, finalize, of, tap } from 'rxjs';\r\nimport { TableCellPipe } from '../../pipes/table-cell.pipe';\r\nimport { SocketService } from '../../../services/socket.service';\r\nimport { CorePageHeaderComponent } from '../../core-page-header/core-page-header/core-page-header.component';\r\nimport { CoreTerminalSpinnerComponent } from '../../core-terminal-spinner/core-terminal-spinner.component';\r\nimport { IWorkflowInstance } from '../interfaces/IWorkflowInstance';\r\nimport { RuntimeRoutingComponent } from '../runtime-routing/runtime-routing.component';\r\nimport { IRoutingStep } from '../interfaces/IRoutingStep';\r\nimport { AlertService } from '../../alert/alert.service';\r\nimport { alertOptions } from '../../../constants/alertOptions';\r\nimport { RuntimeLogsComponent } from '../runtime-logs/runtime-logs.component';\r\nimport { NgClass } from '@angular/common';\r\nimport { EnumCoreButtonCode } from '../../core-button-group/core-button/EnumButtonCaptionCode';\r\nimport { CoreWorkflowService } from '../core-workflow.service';\r\n\r\n@Component({\r\n selector: 'wf-instance-status',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n TableCellPipe,\r\n NgClass,\r\n CorePageHeaderComponent,\r\n CoreTerminalSpinnerComponent,\r\n RuntimeRoutingComponent,\r\n RuntimeLogsComponent,\r\n ],\r\n templateUrl: './wf-instance-status.component.html',\r\n styleUrl: './wf-instance-status.component.scss'\r\n})\r\n\r\nexport class WfInstanceStatusComponent extends BaseComponent {\r\n route = inject(ActivatedRoute);\r\n appService = inject(AppService);\r\n wfs = inject(CoreWorkflowService);\r\n\r\n $loading = signal(true);\r\n $instance = signal<IWorkflowInstance | null>(null);\r\n $error = signal<string | null>(null);\r\n $correlationId = signal<string | null>(null);\r\n\r\n $attributesBeauty = computed(() => {\r\n return JSON.stringify((this.$instance()?.attributes ?? {}), null, 2);\r\n })\r\n\r\n $isExpanded = signal(false);\r\n\r\n onCorePageHeaderButtonClicked(e: any) {\r\n if (e.code === \"HEADER_TERMINATE\") {\r\n this.$loading.set(true);\r\n this.subscriptions.push(\r\n this.wfs.inject(`${this.$instance()?.workflowId}___${this.$correlationId()}`, \"TERMINATED\", \"Random Terminate Test\").pipe(\r\n catchError(err => {\r\n this.$loading.set(false);\r\n return of(err);\r\n })\r\n ).subscribe(x => {\r\n this.$loading.set(false);\r\n if (x.ok && x.status === 200 && x.body?.statusCode === 200) {\r\n\r\n }\r\n })\r\n )\r\n } else if (e.code === \"HEADER_DEBUG\") {\r\n this.$loading.set(true);\r\n this.subscriptions.push(\r\n this.wfs.inject(`${this.$instance()?.workflowId}___${this.$correlationId()}`, \"REVOKED\", \"Random Revoke Test\", 10678).pipe(\r\n catchError(err => {\r\n this.$loading.set(false);\r\n return of(err);\r\n })\r\n ).subscribe(x => {\r\n this.$loading.set(false);\r\n if (x.ok && x.status === 200 && x.body?.statusCode === 200) {\r\n\r\n }\r\n })\r\n ) \r\n }\r\n }\r\n\r\n refresh(): void {\r\n const correlationId = this.$correlationId();\r\n if (!!correlationId) {\r\n this.subscriptions.push(\r\n this.appService.get(`/api/WorkflowEngine/GetStatus?correlationId=${correlationId}&usehub=true`).pipe(\r\n tap(_ => this.$loading.set(true)),\r\n catchError(err => {\r\n this.$loading.set(false);\r\n const msg =\r\n err?.error?.message || // API-defined message\r\n err?.message || // Native JS or HttpErrorResponse\r\n err?.statusText || // Fallback\r\n 'An unknown error occurred.';\r\n return of({ ok: false, status: 500, body: { messageCode: msg } });\r\n })\r\n ).subscribe(x => {\r\n this.$loading.set(false);\r\n if (x.ok && x.status === 200 && x.body?.statusCode === 200) {\r\n\r\n const raw: IWorkflowInstance = x.body.innerBody;\r\n raw.attributes = JSON.parse(raw.attributesJson);\r\n\r\n raw.stepProgresses.forEach(step => {\r\n if (!!step.exeConfigJson) {\r\n step.exeConfig = JSON.parse(step.exeConfigJson);\r\n } else {\r\n step.exeConfig = {};\r\n }\r\n })\r\n\r\n this.$instance.set(raw);\r\n\r\n }\r\n })\r\n )\r\n }\r\n }\r\n\r\n constructor(\r\n public override mls: MultiLanguageService,\r\n private ss: SocketService,\r\n private as: AlertService,\r\n ) {\r\n super(mls);\r\n\r\n effect(() => {\r\n const status = ss.$workflowTicket();\r\n if (status?.correlationId.toLocaleLowerCase() === this.$correlationId()?.toLocaleLowerCase()) {\r\n this.as.info(\"The status has been changed\", alertOptions);\r\n this.refresh();\r\n }\r\n })\r\n\r\n this.subscriptions.push(\r\n this.route.paramMap.subscribe(p => {\r\n const correlationId = p.get('id');\r\n this.$correlationId.set(correlationId);\r\n })\r\n )\r\n\r\n effect(() => {\r\n const _ = this.$correlationId();\r\n this.refresh();\r\n })\r\n }\r\n\r\n toggleAccordion(): void {\r\n this.$isExpanded.set(!this.$isExpanded());\r\n }\r\n\r\n copy(value: string | number | undefined | null): void {\r\n if (!value) return;\r\n navigator.clipboard.writeText(value.toString()).then(() => {\r\n this.as.success('Copied!', alertOptions);\r\n });\r\n }\r\n\r\n\r\n}\r\n","<div class=\"wf-instance-status-container\">\r\n <core-page-header [title]=\"'Workflow Instance Status'\" (buttonClick)=\"onCorePageHeaderButtonClicked($event)\"/>\r\n\r\n <div class=\"status-parts\">\r\n <div class=\"saga\">\r\n @if ($loading()) {\r\n <p class=\"wf-status-loading\">\r\n <core-terminal-spinner />\r\n </p>\r\n } @else if ($error()) {\r\n <p class=\"wf-status-error\">⚠️ {{ $error() }}</p>\r\n } @else if (!$instance()) {\r\n <p class=\"wf-status-empty\">No instance data found.</p>\r\n } @else {\r\n <div class=\"wf-status-card\">\r\n\r\n <!-- Workflow Info -->\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Workflow Name:</label>\r\n <span>{{ $instance()!.workflowName }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Current State:</label>\r\n <span class=\"wf-status-badge1 wf-status-{{ $instance()!.currentState.toLowerCase() }}\">\r\n {{ $instance()!.currentState }}\r\n </span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Current Step:</label>\r\n <span>{{ $instance()!.currentStepName || '—' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Last Action At:</label>\r\n <span>{{ $instance()!.lastActionAt | tableCell : 'DATE_TIME' : lang }}</span>\r\n </div>\r\n\r\n <!-- First Actor Info -->\r\n <div class=\"wf-status-subtitle\">📌 First Actor</div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Full Name:</label>\r\n <span>{{ $instance()!.firstActorFullname }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Email:</label>\r\n <span>{{ $instance()!.firstActorEmail }}</span>\r\n </div>\r\n\r\n <!-- Last Actor Info -->\r\n <div class=\"wf-status-subtitle\">🔍 Last Actor</div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Full Name:</label>\r\n <span>{{ $instance()!.lastActorFullname || '—' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Email:</label>\r\n <span>{{ $instance()!.lastActorEmail || '—' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Employee Code:</label>\r\n <span>{{ $instance()!.lastActorEmployeeCode || '—' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Position Name:</label>\r\n <span>{{ $instance()!.lastActorPositionName || '—' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Job Name:</label>\r\n <span>{{ $instance()!.lastActorJobName || '—' }}</span>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>System Messages:</label>\r\n <span>{{ $instance()!.systemMessages || '—' }}</span>\r\n </div>\r\n\r\n <!-- Show More Section -->\r\n\r\n <div class=\"wf-status-accordion\">\r\n <button class=\"accordion-summary\" (click)=\"toggleAccordion()\">\r\n <span><i [ngClass]=\"$isExpanded() ? 'feather-minus' : 'feather-plus'\"></i></span> {{ $isExpanded() ? 'Hide Details' : 'Show More' }}\r\n </button>\r\n\r\n <div class=\"accordion-body\" [style.maxHeight]=\"$isExpanded() ? '1000px' : '0'\"\r\n [style.opacity]=\"$isExpanded() ? '1' : '0'\" [style.pointerEvents]=\"$isExpanded() ? 'auto' : 'none'\">\r\n <div class=\"wf-status-row\">\r\n <label>Workflow ID:</label>\r\n <span>\r\n {{ $instance()!.workflowId }}\r\n </span>\r\n <button type=\"button\" (click)=\"copy($instance()!.workflowId)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Employee ID:</label>\r\n <span>\r\n {{ $instance()!.lastActorEmployeeId }}\r\n </span>\r\n <button type=\"button\" (click)=\"copy($instance()!.lastActorEmployeeId)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Last Triggered Step ID:</label>\r\n <span>\r\n {{ $instance()!.lastTriggeredStepId || '—' }}\r\n </span>\r\n @if ($instance()!.lastTriggeredStepId) {\r\n <button type=\"button\" (click)=\"copy($instance()!.lastTriggeredStepId)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n }\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Attributes JSON:</label>\r\n <span>\r\n <code>{{ $attributesBeauty() }}</code>\r\n </span>\r\n <button type=\"button\" (click)=\"copy($instance()!.attributesJson)\" class=\"copy-btn\"><i class=\"feather-clipboard\"></i></button>\r\n </div>\r\n\r\n <div class=\"wf-status-row\">\r\n <label>Debug Mode:</label>\r\n <span>{{ $instance()!.isDebug ? '✔ Enabled' : '❌ Disabled' }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"runtime-routing-n-logs\">\r\n <runtime-routing [$instance]=\"$instance()\" />\r\n <div class=\"h15\"></div>\r\n <runtime-logs [$instance]=\"$instance()\" />\r\n </div>\r\n </div>\r\n</div>"],"names":["i1.MultiLanguageService","i2.SocketService","i3.AlertService"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { signal, inject, effect, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import { e as BaseComponent, b as CoreWorkflowService, E as EnumFormBaseContolType, M as MultiLanguageService, A as AppService, F as FullscreenModalLoaderComponent } from './ngx-histaff-alpha-ngx-histaff-alpha-
|
|
3
|
+
import { e as BaseComponent, b as CoreWorkflowService, E as EnumFormBaseContolType, M as MultiLanguageService, A as AppService, F as FullscreenModalLoaderComponent } from './ngx-histaff-alpha-ngx-histaff-alpha-Dh4tWGKT.mjs';
|
|
4
4
|
import { BehaviorSubject, tap, catchError, of } from 'rxjs';
|
|
5
|
-
import { L as LiveFormComponent } from './ngx-histaff-alpha-live-form.component-
|
|
5
|
+
import { L as LiveFormComponent } from './ngx-histaff-alpha-live-form.component-D7oAY8-L.mjs';
|
|
6
6
|
import { Validators } from '@angular/forms';
|
|
7
7
|
import { EnumTranslateKey } from 'alpha-global-constants';
|
|
8
8
|
import * as i1 from '@angular/router';
|
|
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
73
73
|
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: i1.ActivatedRoute }, { type: AppService }] });
|
|
74
74
|
|
|
75
75
|
export { WfInstanceStepReactComponent };
|
|
76
|
-
//# sourceMappingURL=ngx-histaff-alpha-wf-instance-step-react.component-
|
|
76
|
+
//# sourceMappingURL=ngx-histaff-alpha-wf-instance-step-react.component-D53ZEW27.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-histaff-alpha-wf-instance-step-react.component-
|
|
1
|
+
{"version":3,"file":"ngx-histaff-alpha-wf-instance-step-react.component-D53ZEW27.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/wf-instance-step-react/wf-instance-step-react.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/wf-instance-step-react/wf-instance-step-react.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, effect, inject, signal } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AppService } from '../../../services/app.service';\r\nimport { BaseComponent } from '../../base-component/base/base.component';\r\nimport { MultiLanguageService } from '../../../services/multi-language.service';\r\nimport { BehaviorSubject, catchError, of, tap } from 'rxjs';\r\nimport { LiveFormComponent } from '../../core-form-design/live-form/live-form.component';\r\nimport { FullscreenModalLoaderComponent } from '../../fullscreen-modal-loader/fullscreen-modal-loader.component';\r\nimport { IFormBaseControl } from '../../core-form/core-form/enum-interfaces';\r\nimport { EnumFormBaseContolType } from '../../../enum/EnumFormBaseContolType';\r\nimport { Validators } from '@angular/forms';\r\nimport { EnumTranslateKey } from 'alpha-global-constants';\r\nimport { CoreWorkflowService } from '../core-workflow.service';\r\nimport { IWorkflowReactContext } from '../interfaces/IWorkflowReactContext';\r\n\r\n@Component({\r\n selector: 'wf-instance-step-react',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n LiveFormComponent,\r\n FullscreenModalLoaderComponent\r\n ],\r\n templateUrl: './wf-instance-step-react.component.html',\r\n styleUrl: './wf-instance-step-react.component.scss'\r\n})\r\nexport class WfInstanceStepReactComponent extends BaseComponent {\r\n $id = signal<string>('');\r\n $loading = signal(false);\r\n $context = signal<IWorkflowReactContext | null>(null); // May be improved with interface\r\n\r\n $reactMode = signal(false);\r\n\r\n wfs = inject(CoreWorkflowService);\r\n\r\n injectedFields$ = new BehaviorSubject<IFormBaseControl[]>(\r\n [\r\n {\r\n field: \"___reason\",\r\n type: \"text\",\r\n value: '',\r\n label: \"UI_FORM_CONTROL_LABEL.REASON\",\r\n flexSize: 12,\r\n controlType: EnumFormBaseContolType.TEXTAREA,\r\n textareaRows: 5,\r\n validators: [\r\n {\r\n name: 'required',\r\n validator: Validators.required,\r\n errorMessage: EnumTranslateKey.UI_FORM_CONTROL_ERROR_REQUIRED\r\n }\r\n ],\r\n }\r\n ]\r\n )\r\n\r\n constructor(\r\n public override mls: MultiLanguageService,\r\n private route: ActivatedRoute,\r\n private appService: AppService,\r\n ) {\r\n super(mls);\r\n this.route.params.subscribe(p => {\r\n this.$id.set(p['id']);\r\n });\r\n\r\n effect(() => {\r\n const id = this.$id();\r\n if (!id || !id.length) return;\r\n\r\n this.subscriptions.push(\r\n this.appService.get(`/api/WorkflowEngine/GetReactContext?unitedCorrelationIds=${id}`)\r\n .pipe(\r\n tap(_ => this.$loading.set(true)),\r\n catchError(err => {\r\n this.$loading.set(false);\r\n const messageCode =\r\n err?.error?.message || // API-defined message\r\n err?.message || // Native JS or HttpErrorResponse\r\n err?.statusText || // Fallback\r\n 'An unknown error occurred.';\r\n\r\n return of({ ok: false, status: 500, body: { messageCode } })\r\n })\r\n )\r\n .subscribe(x => {\r\n this.$loading.set(false);\r\n if (x.ok && x.status === 200 && x.body?.statusCode === 200) {\r\n const context: IWorkflowReactContext | null = x.body.innerBody;\r\n this.$context.set(context);\r\n }\r\n })\r\n )\r\n\r\n });\r\n }\r\n}\r\n","<live-form [$workflowReactContext]=\"$context()\" [$forKickOff]=\"false\" />\r\n\r\n@if ($loading()) {\r\n <app-fullscreen-modal-loader />\r\n}\r\n"],"names":["i1.MultiLanguageService","i2","i3.AppService"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { aL as ActionService, cu as ActionSvgEditComponent, cc as AlertComponent, i as AlertService, cg as AnimatedTextComponent, cf as AnimatedTextService, L as AppConfigService, aM as AppInitializationService, A as AppService, z as ApplicationHelpService, bB as AtShiftPatternApplyComponent, bA as AtShiftPatternComponent, bC as AtShiftPatternEditComponent, bD as AtWorksignComponent, bE as AtWorksignService, aN as AuthService, e as BaseComponent, ch as BaseDropdownComponent, B as BaseEditComponent, ck as ButtonGroupComponent, ci as ButtonGroupModule, cj as ButtonGroupService, ah as CORE_VNS_BUTTONS, aO as CacheService, av as CanActivateFunctionUrlMapperGuard, h as CanDeactivateGuard, aQ as CheckForUpdateService, aU as ClientService, aV as CommonHttpRequestService, aX as ConfigService, cD as ConfirmDialogStateComponent, cT as ControlBase, cn as CoreAccordionComponent, co as CoreAccordionService, cp as CoreActiveUserCountComponent, cr as CoreApiProgressComponent, $ as CoreAttachmentComponent, cm as CoreButtonComponent, cs as CoreButtonGroupComponent, cv as CoreButtonGroupService, V as CoreButtonGroupVnsComponent, cw as CoreButtonVnsComponent, J as CoreCheckboxComponent, s as CoreChecklistComponent, cx as CoreCommonParamKitComponent, cy as CoreCompareDbPipelineComponent, cB as CoreCompositionComponent, cA as CoreCompositionService, cz as CoreCompositionState, cC as CoreConfirmDialogComponent, cK as CoreContractSeekerComponent, _ as CoreControlComponent, cL as CoreControlNoGridBufferComponent, cM as CoreControlNoSeekerComponent, cV as CoreControlService, v as CoreCurrencyInputComponent, en as CoreD3Service, t as CoreDatePickerComponent, eJ as CoreDatetimeService, r as CoreDropdownComponent, cN as CoreEmployeeScheduleComponent, cO as CoreEmployeeSeekerComponent, dK as CoreFileFormatPickerComponent, cQ as CoreFileUploaderComponent, cR as CoreFilterHubComponent, cS as CoreFilterHubService, U as CoreFormComponent, c$ as CoreFormControlBaseComponent, u as CoreFormControlSeekerComponent, n as CoreFormDesignService, c_ as CoreFormLiteComponent, a4 as CoreFormService, cZ as CoreFormTabComponent, d9 as CoreGridBufferComponent, da as CoreHeaderParamsComponent, db as CoreHelperComponent, a3 as CoreIosSwitcherComponent, cE as CoreLazyMountComponent, dc as CoreLineComponent, dd as CoreListComponent, de as CoreListLazyComponent, df as CoreLoadingSurfaceComponent, dg as CoreMccComponent, dh as CoreMonthPickerComponent, a0 as CoreMonthSelectorComponent, di as CoreNavigationTrackerComponent, dk as CoreOauthCallbackComponent, dl as CoreOauthCallbackOffice365Component, du as CoreOrgParamComponent, dp as CoreOrgTreeComponent, dr as CoreOrgTreeService, dq as CoreOrgTreeState, ds as CoreOrgUnitSeekerComponent, dt as CoreOrgchartflexComponent, d as CorePageEditComponent, dy as CorePageEditLiteComponent, dx as CorePageEditService, dz as CorePageEditTabComponent, C as CorePageHeaderComponent, dA as CorePageListComponent, dE as CorePageListContentComponent, dC as CorePageListService, dD as CorePageListState, dG as CorePageViewComponent, dH as CorePaginationComponent, dI as CorePaginationFullComponent, dJ as CorePaginationFullService, x as CoreParamControlComponent, dO as CorePermissionActionsComponent, dN as CorePermissionComponent, dL as CorePermissionService, eo as CorePieComponent, dP as CorePositionConcurrentSeekerComponent, dQ as CorePositionSeekerComponent, dR as CoreQrcodeComponent, dT as CoreQueryBuilderComponent, y as CoreRadioGroupComponent, dU as CoreReducerIconComponent, cF as CoreRootMenuItemPickerComponent, cG as CoreRootMenuItemPickerService, dV as CoreRotatingTextComponent, dW as CoreRouteAccumulatorComponent, dX as CoreRoutingHistoryComponent, dY as CoreSalaryPolicyPickerComponent, ep as CoreScatterPlotComponent, dZ as CoreScrollComponent, d_ as CoreScrollLazyComponent, d$ as CoreSeenByComponent, e0 as CoreShiftCardComponent, e1 as CoreShiftCellComponent, e2 as CoreShiftCollectionComponent, e3 as CoreShiftStickerComponent, es as CoreStatisticWidgetComponent, e5 as CoreStatusStickerComponent, e6 as CoreSubFormGroupComponent, e7 as CoreTabListComponent, cJ as CoreTableComponent, aY as CoreTableService, a as CoreTabsComponent, e8 as CoreTagsComponent, m as CoreTerminalSpinnerComponent, e9 as CoreTopicPickerComponent, eb as CoreTopicTreeComponent, ec as CoreTreeComponent, ee as CoreTreeGridComponent, ef as CoreWageSeekerComponent, ei as CoreWorkflowBuilderComponent, ej as CoreWorkflowGroupEditComponent, f as CoreWorkflowListComponent, eg as CoreWorkingSeekerComponent, ek as CoreYearPickerComponent, el as CoreYearSelectorComponent, cW as CustomValidators, am as DATE_VALUE_ACCESSOR, ey as DEFAULT_SVG, aj as DESKTOP_SCREEN_HEDER_HEIGHT, an as DateValueAccessor, et as DecisionComponent, p as DialogService, ab as DialogStateComponent, aZ as DndService, q as DomService, cI as ECoreTableToolClass, cH as ECoreTableToolCode, cd as EnumAlertType, aS as EnumBrowserType, cl as EnumButtonCaptionCode, ea as EnumCoreArticleCategoryTreeaAccessorMode, ct as EnumCoreButtonCode, P as EnumCoreButtonVNSCode, em as EnumCoreD3ScaleType, cP as EnumCoreFileUploaderType, c as EnumCoreFormControlSeekerSourceType, dm as EnumCoreOrgTreeaAccessorMode, dn as EnumCoreOrgTreeaSearchMode, dv as EnumCorePageEditBootstrapClass, dw as EnumCorePageEditFieldType, O as EnumCorePageEditMode, d7 as EnumCoreSeekerColumnAutoForm, d2 as EnumCoreSeekerColumnContract, d0 as EnumCoreSeekerColumnJob, d5 as EnumCoreSeekerColumnPosition, d6 as EnumCoreSeekerColumnPositionConcurrent, d1 as EnumCoreSeekerColumnStaffProfile, d4 as EnumCoreSeekerColumnWage, d3 as EnumCoreSeekerColumnWorking, W as EnumCoreTablePipeType, ed as EnumCoreTreeGridEditMode, dF as EnumCoreViewItemType, aR as EnumDeviceType, ao as EnumDragType, ap as EnumErrorType, dB as EnumExType, aJ as EnumFilterOperator, E as EnumFormBaseContolType, Z as EnumFormDesignMode, eq as EnumHrComparisonCode, er as EnumICoreStatisticWidgetDataType, aq as EnumIconClass, a1 as EnumImageResolverType, bd as EnumNotificationDir, dS as EnumOparator, aT as EnumOsType, dM as EnumPermissionObjectType, ar as EnumProfileInfoSector, eM as EnumRecursiveFields, as as EnumSignalRType, at as EnumSortDirection, bm as EnumSsrsExpressExportFormat, bl as EnumSsrsExpressFileExtension, au as EnumStyleButtonClass, aP as EnumSwUpdateVersionUpdatesEventType, by as EnumWorkScheduleViewMode, eu as EvaluateDialogComponent, bx as EvaluateDialogService, eK as FileService, a_ as FilterKitService, eF as FilterPipe, ac as FooterComponent, F as FullscreenModalLoaderComponent, bF as FunctionComponent, bH as FunctionEditComponent, c6 as FunctionEditService, bI as FunctionIgnoreComponent, bJ as FunctionIgnoreEditComponent, G as GptService, bK as GroupFunctionComponent, bL as GroupFunctionEditComponent, a$ as GrpcService, b0 as HeaderService, b1 as HistoryService, H as HotKeysDirective, X as HtmlTooltipDirective, b2 as HttpErrorHandler, b3 as HubConnectionService, ev as HuconcurrentlyComponent, ce as IAlertOptions, I as ImageErrorResolverDirective, bM as InMemoryComponent, bG as IndividualScheduleApplyComponent, aw as InitializationCanActivateFn, ax as InitializationCanMatchFn, az as InterceptorSkipHeader, b4 as IpServiceService, ez as ItemComponent, ew as JobComponent, K as JsonService, ex as LanguageChangerComponent, bN as LanguageComponent, bO as LanguageEditComponent, b5 as LayoutService, eL as LongTaskService, ak as MOBILE_SCREEN_HEDER_HEIGHT, a6 as MapAppdemoToServerPipePipe, a7 as MapAttachmentToServerPipe, k as MapAvatarToServerPipe, a8 as MapNewsfeedMediaToServerPipe, b6 as MapService, bP as MenuComponent, bQ as MenuEditComponent, b7 as MenuService, b8 as MessageService, b9 as ModalService, M as MultiLanguageService, bR as MutationLogComponent, bS as MutationViewComponent, eA as NavigatorComponent, N as NavigatorService, cq as NewlyCreatedTokenService, a2 as NormalizeHumanNamePipe, be as NotificationActionType, aK as OnlineUsersComponent, ba as OrganizationService, eB as OtpInputComponent, eC as OtpInputService, bT as PaSalaryPolicyComponent, bU as PaSalaryPolicyEditComponent, eD as PageTitleComponent, eE as PaginationComponent, bb as PkceService, bV as PortalRouteComponent, bX as PortalRouteEditComponent, eH as PositionComponent, eI as PositionEditService, bc as PositionTransferService, bf as PushNotificationService, R as READONLY_WORKFLOW_FIELDS, bg as RandomAvatarService, eN as RecursiveService, bh as RequestCache, bi as RequestCacheWithMap, bj as ResponseService, ad as RightchatComponent, bk as RoutingService, e4 as STICKER_COLOR_SCHEMA, bW as ScheduleOverviewComponent, d8 as SeekerService, S as SocketService, bn as SsrsExpressService, eQ as StaffProfileComponent, bp as StatisticAuthService, bo as StatisticService, a9 as StringHtmlPipe, eO as StringService, a5 as SunnyRotatingComponent, c0 as SysActionComponent, c1 as SysActionEditComponent, c2 as SysFunctionActionComponent, c3 as SysFunctionActionEditComponent, c4 as SysFunctionActionMapperComponent, c5 as SysFunctionUrlMapperComponent, bq as SysMenuService, c7 as SysModuleComponent, c8 as SysModuleEditComponent, bY as SysOtherListComponent, bZ as SysOtherListEditComponent, b_ as SysOtherListTypeComponent, b$ as SysOtherListTypeEditComponent, c9 as SysRouteAccessComponent, aW as TLA_CONFIG, j as TableCellPipe, cU as Textbox, eR as ThreedotsComponent, br as TimeSheetService, eS as TooltipComponent, g as TooltipDirective, bs as TopicPermissionService, bt as TopicTreeService, T as TranslatePipe, cX as URL_PATTERN, eP as UnicodeService, bu as UploadedFileService, aa as UploadedFilenameCutoffPipe, bv as UrlService, eT as UserActivityComponent, bw as UserActivityService, eU as WageComponent, ae as WaittingScreenComponent, bz as WorkShiftDndService, l as alertOptions, aA as appTypeInterceptor, ag as attachmentOptions, aC as authInterceptor, aB as baseUrlInterceptor, cb as blob_to_base64_script, aH as cachingInterceptor, cY as coreFormDesignRoutes, dj as coreNavigationTrackerRoutes, eh as coreWorkflowRoutes, ai as defaultPaging, aD as graphInterceptor, ay as httpInterceptorProviders, aI as langInterceptor, ca as liner_to_nested_array_script, af as longAlertOptions, Q as noneAutoClosedAlertOptions, eG as normalizeHumanName, aF as responseInterceptor, al as themeBlue, aG as timeZoneInterceptor, aE as tokenInterceptor } from './ngx-histaff-alpha-ngx-histaff-alpha-CkvGEG39.mjs';
|
|
1
|
+
export { aM as ActionService, cv as ActionSvgEditComponent, cd as AlertComponent, i as AlertService, ch as AnimatedTextComponent, cg as AnimatedTextService, L as AppConfigService, aN as AppInitializationService, A as AppService, z as ApplicationHelpService, bC as AtShiftPatternApplyComponent, bB as AtShiftPatternComponent, bD as AtShiftPatternEditComponent, bE as AtWorksignComponent, bF as AtWorksignService, aO as AuthService, e as BaseComponent, ci as BaseDropdownComponent, B as BaseEditComponent, cl as ButtonGroupComponent, cj as ButtonGroupModule, ck as ButtonGroupService, ai as CORE_VNS_BUTTONS, aP as CacheService, aw as CanActivateFunctionUrlMapperGuard, h as CanDeactivateGuard, aR as CheckForUpdateService, aV as ClientService, aW as CommonHttpRequestService, aY as ConfigService, cE as ConfirmDialogStateComponent, cU as ControlBase, co as CoreAccordionComponent, cp as CoreAccordionService, cq as CoreActiveUserCountComponent, cs as CoreApiProgressComponent, a0 as CoreAttachmentComponent, cn as CoreButtonComponent, ct as CoreButtonGroupComponent, cw as CoreButtonGroupService, V as CoreButtonGroupVnsComponent, cx as CoreButtonVnsComponent, J as CoreCheckboxComponent, s as CoreChecklistComponent, cy as CoreCommonParamKitComponent, cz as CoreCompareDbPipelineComponent, cC as CoreCompositionComponent, cB as CoreCompositionService, cA as CoreCompositionState, cD as CoreConfirmDialogComponent, cL as CoreContractSeekerComponent, _ as CoreControlComponent, cM as CoreControlNoGridBufferComponent, cN as CoreControlNoSeekerComponent, cW as CoreControlService, v as CoreCurrencyInputComponent, eo as CoreD3Service, t as CoreDatePickerComponent, eK as CoreDatetimeService, r as CoreDropdownComponent, cO as CoreEmployeeScheduleComponent, cP as CoreEmployeeSeekerComponent, dL as CoreFileFormatPickerComponent, cR as CoreFileUploaderComponent, cS as CoreFilterHubComponent, cT as CoreFilterHubService, U as CoreFormComponent, d0 as CoreFormControlBaseComponent, u as CoreFormControlSeekerComponent, n as CoreFormDesignService, c$ as CoreFormLiteComponent, a5 as CoreFormService, c_ as CoreFormTabComponent, da as CoreGridBufferComponent, db as CoreHeaderParamsComponent, dc as CoreHelperComponent, a4 as CoreIosSwitcherComponent, cF as CoreLazyMountComponent, dd as CoreLineComponent, de as CoreListComponent, df as CoreListLazyComponent, dg as CoreLoadingSurfaceComponent, dh as CoreMccComponent, di as CoreMonthPickerComponent, a1 as CoreMonthSelectorComponent, dj as CoreNavigationTrackerComponent, dl as CoreOauthCallbackComponent, dm as CoreOauthCallbackOffice365Component, dv as CoreOrgParamComponent, dq as CoreOrgTreeComponent, ds as CoreOrgTreeService, dr as CoreOrgTreeState, dt as CoreOrgUnitSeekerComponent, du as CoreOrgchartflexComponent, d as CorePageEditComponent, dz as CorePageEditLiteComponent, dy as CorePageEditService, dA as CorePageEditTabComponent, C as CorePageHeaderComponent, dB as CorePageListComponent, dF as CorePageListContentComponent, dD as CorePageListService, dE as CorePageListState, dH as CorePageViewComponent, dI as CorePaginationComponent, dJ as CorePaginationFullComponent, dK as CorePaginationFullService, x as CoreParamControlComponent, dP as CorePermissionActionsComponent, dO as CorePermissionComponent, dM as CorePermissionService, ep as CorePieComponent, dQ as CorePositionConcurrentSeekerComponent, dR as CorePositionSeekerComponent, dS as CoreQrcodeComponent, dU as CoreQueryBuilderComponent, y as CoreRadioGroupComponent, dV as CoreReducerIconComponent, cG as CoreRootMenuItemPickerComponent, cH as CoreRootMenuItemPickerService, dW as CoreRotatingTextComponent, dX as CoreRouteAccumulatorComponent, dY as CoreRoutingHistoryComponent, dZ as CoreSalaryPolicyPickerComponent, eq as CoreScatterPlotComponent, d_ as CoreScrollComponent, d$ as CoreScrollLazyComponent, e0 as CoreSeenByComponent, e1 as CoreShiftCardComponent, e2 as CoreShiftCellComponent, e3 as CoreShiftCollectionComponent, e4 as CoreShiftStickerComponent, et as CoreStatisticWidgetComponent, e6 as CoreStatusStickerComponent, e7 as CoreSubFormGroupComponent, e8 as CoreTabListComponent, cK as CoreTableComponent, aZ as CoreTableService, a as CoreTabsComponent, e9 as CoreTagsComponent, m as CoreTerminalSpinnerComponent, ea as CoreTopicPickerComponent, ec as CoreTopicTreeComponent, ed as CoreTreeComponent, ef as CoreTreeGridComponent, eg as CoreWageSeekerComponent, ej as CoreWorkflowBuilderComponent, ek as CoreWorkflowGroupEditComponent, f as CoreWorkflowListComponent, eh as CoreWorkingSeekerComponent, el as CoreYearPickerComponent, em as CoreYearSelectorComponent, cX as CustomValidators, an as DATE_VALUE_ACCESSOR, ez as DEFAULT_SVG, ak as DESKTOP_SCREEN_HEDER_HEIGHT, ao as DateValueAccessor, eu as DecisionComponent, p as DialogService, ac as DialogStateComponent, a_ as DndService, q as DomService, cJ as ECoreTableToolClass, cI as ECoreTableToolCode, ce as EnumAlertType, aT as EnumBrowserType, cm as EnumButtonCaptionCode, eb as EnumCoreArticleCategoryTreeaAccessorMode, cu as EnumCoreButtonCode, P as EnumCoreButtonVNSCode, en as EnumCoreD3ScaleType, cQ as EnumCoreFileUploaderType, c as EnumCoreFormControlSeekerSourceType, dn as EnumCoreOrgTreeaAccessorMode, dp as EnumCoreOrgTreeaSearchMode, dw as EnumCorePageEditBootstrapClass, dx as EnumCorePageEditFieldType, O as EnumCorePageEditMode, d8 as EnumCoreSeekerColumnAutoForm, d3 as EnumCoreSeekerColumnContract, d1 as EnumCoreSeekerColumnJob, d6 as EnumCoreSeekerColumnPosition, d7 as EnumCoreSeekerColumnPositionConcurrent, d2 as EnumCoreSeekerColumnStaffProfile, d5 as EnumCoreSeekerColumnWage, d4 as EnumCoreSeekerColumnWorking, W as EnumCoreTablePipeType, ee as EnumCoreTreeGridEditMode, dG as EnumCoreViewItemType, aS as EnumDeviceType, ap as EnumDragType, aq as EnumErrorType, dC as EnumExType, aK as EnumFilterOperator, E as EnumFormBaseContolType, Z as EnumFormDesignMode, er as EnumHrComparisonCode, es as EnumICoreStatisticWidgetDataType, ar as EnumIconClass, a2 as EnumImageResolverType, be as EnumNotificationDir, dT as EnumOparator, aU as EnumOsType, dN as EnumPermissionObjectType, as as EnumProfileInfoSector, eN as EnumRecursiveFields, at as EnumSignalRType, au as EnumSortDirection, bn as EnumSsrsExpressExportFormat, bm as EnumSsrsExpressFileExtension, av as EnumStyleButtonClass, aQ as EnumSwUpdateVersionUpdatesEventType, bz as EnumWorkScheduleViewMode, ev as EvaluateDialogComponent, by as EvaluateDialogService, eL as FileService, a$ as FilterKitService, eG as FilterPipe, ad as FooterComponent, F as FullscreenModalLoaderComponent, bG as FunctionComponent, bI as FunctionEditComponent, c7 as FunctionEditService, bJ as FunctionIgnoreComponent, bK as FunctionIgnoreEditComponent, G as GptService, bL as GroupFunctionComponent, bM as GroupFunctionEditComponent, b0 as GrpcService, b1 as HeaderService, b2 as HistoryService, H as HotKeysDirective, X as HtmlTooltipDirective, b3 as HttpErrorHandler, b4 as HubConnectionService, ew as HuconcurrentlyComponent, cf as IAlertOptions, I as ImageErrorResolverDirective, bN as InMemoryComponent, bH as IndividualScheduleApplyComponent, ax as InitializationCanActivateFn, ay as InitializationCanMatchFn, aA as InterceptorSkipHeader, b5 as IpServiceService, eA as ItemComponent, ex as JobComponent, K as JsonService, ey as LanguageChangerComponent, bO as LanguageComponent, bP as LanguageEditComponent, b6 as LayoutService, eM as LongTaskService, al as MOBILE_SCREEN_HEDER_HEIGHT, a7 as MapAppdemoToServerPipePipe, a8 as MapAttachmentToServerPipe, k as MapAvatarToServerPipe, a9 as MapNewsfeedMediaToServerPipe, b7 as MapService, bQ as MenuComponent, bR as MenuEditComponent, b8 as MenuService, b9 as MessageService, ba as ModalService, M as MultiLanguageService, bS as MutationLogComponent, bT as MutationViewComponent, eB as NavigatorComponent, N as NavigatorService, cr as NewlyCreatedTokenService, a3 as NormalizeHumanNamePipe, bf as NotificationActionType, aL as OnlineUsersComponent, bb as OrganizationService, eC as OtpInputComponent, eD as OtpInputService, bU as PaSalaryPolicyComponent, bV as PaSalaryPolicyEditComponent, eE as PageTitleComponent, eF as PaginationComponent, bc as PkceService, bW as PortalRouteComponent, bY as PortalRouteEditComponent, eI as PositionComponent, eJ as PositionEditService, bd as PositionTransferService, bg as PushNotificationService, R as READONLY_WORKFLOW_FIELDS, bh as RandomAvatarService, eO as RecursiveService, bi as RequestCache, bj as RequestCacheWithMap, bk as ResponseService, ae as RightchatComponent, bl as RoutingService, e5 as STICKER_COLOR_SCHEMA, bX as ScheduleOverviewComponent, d9 as SeekerService, S as SocketService, bo as SsrsExpressService, eR as StaffProfileComponent, bq as StatisticAuthService, bp as StatisticService, aa as StringHtmlPipe, eP as StringService, a6 as SunnyRotatingComponent, c1 as SysActionComponent, c2 as SysActionEditComponent, c3 as SysFunctionActionComponent, c4 as SysFunctionActionEditComponent, c5 as SysFunctionActionMapperComponent, c6 as SysFunctionUrlMapperComponent, br as SysMenuService, c8 as SysModuleComponent, c9 as SysModuleEditComponent, bZ as SysOtherListComponent, b_ as SysOtherListEditComponent, b$ as SysOtherListTypeComponent, c0 as SysOtherListTypeEditComponent, ca as SysRouteAccessComponent, aX as TLA_CONFIG, j as TableCellPipe, cV as Textbox, eS as ThreedotsComponent, bs as TimeSheetService, eT as TooltipComponent, g as TooltipDirective, bt as TopicPermissionService, bu as TopicTreeService, T as TranslatePipe, cY as URL_PATTERN, eQ as UnicodeService, bv as UploadedFileService, ab as UploadedFilenameCutoffPipe, bw as UrlService, eU as UserActivityComponent, bx as UserActivityService, eV as WageComponent, af as WaittingScreenComponent, bA as WorkShiftDndService, l as alertOptions, aB as appTypeInterceptor, ah as attachmentOptions, aD as authInterceptor, aC as baseUrlInterceptor, cc as blob_to_base64_script, aI as cachingInterceptor, cZ as coreFormDesignRoutes, dk as coreNavigationTrackerRoutes, ei as coreWorkflowRoutes, aj as defaultPaging, aE as graphInterceptor, az as httpInterceptorProviders, aJ as langInterceptor, cb as liner_to_nested_array_script, ag as longAlertOptions, Q as noneAutoClosedAlertOptions, eH as normalizeHumanName, aG as responseInterceptor, am as themeBlue, aH as timeZoneInterceptor, aF as tokenInterceptor } from './ngx-histaff-alpha-ngx-histaff-alpha-Dh4tWGKT.mjs';
|
|
2
2
|
//# sourceMappingURL=ngx-histaff-alpha.mjs.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ElementRef, Renderer2, TemplateRef, ViewContainerRef, OnDestroy } from '@angular/core';
|
|
1
|
+
import { ElementRef, Renderer2, TemplateRef, ViewContainerRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { DomService } from '../libraries/services/dom.service';
|
|
3
|
+
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class HtmlTooltipDirective implements OnDestroy {
|
|
5
|
+
export declare class HtmlTooltipDirective implements OnInit, OnDestroy {
|
|
5
6
|
private el;
|
|
6
7
|
private renderer;
|
|
7
8
|
private viewContainerRef;
|
|
@@ -10,15 +11,24 @@ export declare class HtmlTooltipDirective implements OnDestroy {
|
|
|
10
11
|
tooltipContext: any;
|
|
11
12
|
maxWidthUnset: boolean;
|
|
12
13
|
backgroundColor: string;
|
|
14
|
+
hold$: BehaviorSubject<boolean>;
|
|
13
15
|
private tooltipEl?;
|
|
14
16
|
private embeddedView?;
|
|
15
17
|
private zIndex;
|
|
18
|
+
private tooltipId;
|
|
19
|
+
subscriptions: Subscription[];
|
|
16
20
|
constructor(el: ElementRef, renderer: Renderer2, viewContainerRef: ViewContainerRef, domeService: DomService);
|
|
21
|
+
ngOnInit(): void;
|
|
17
22
|
onMouseEnter(): void;
|
|
18
23
|
private setBaseStyles;
|
|
19
24
|
private setArrowStyles;
|
|
20
|
-
|
|
25
|
+
generateSafeId(): string;
|
|
26
|
+
onMouseLeave(): void;
|
|
27
|
+
onWindowEvent(): void;
|
|
28
|
+
private repositionTooltip;
|
|
29
|
+
private openTooltip;
|
|
21
30
|
private destroyTooltip;
|
|
31
|
+
ngOnDestroy(): void;
|
|
22
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<HtmlTooltipDirective, never>;
|
|
23
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<HtmlTooltipDirective, "[htmlTooltip]", never, { "htmlTooltip": { "alias": "htmlTooltip"; "required": false; }; "tooltipContext": { "alias": "tooltipContext"; "required": false; }; "maxWidthUnset": { "alias": "maxWidthUnset"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; }, {}, never, never, true, never>;
|
|
33
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<HtmlTooltipDirective, "[htmlTooltip]", never, { "htmlTooltip": { "alias": "htmlTooltip"; "required": false; }; "tooltipContext": { "alias": "tooltipContext"; "required": false; }; "maxWidthUnset": { "alias": "maxWidthUnset"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "hold$": { "alias": "hold$"; "required": false; }; }, {}, never, never, true, never>;
|
|
24
34
|
}
|