ngx-histaff-alpha 6.4.7 → 6.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-DdDwSM6u.mjs → ngx-histaff-alpha-ai-hint-for-table.component-CKKqdgg7.mjs} +2 -2
  2. package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-DdDwSM6u.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-CKKqdgg7.mjs.map} +1 -1
  3. package/fesm2022/{ngx-histaff-alpha-core-form-design.component-CyFCxOF0.mjs → ngx-histaff-alpha-core-form-design.component-BZvtwXkM.mjs} +458 -254
  4. package/fesm2022/ngx-histaff-alpha-core-form-design.component-BZvtwXkM.mjs.map +1 -0
  5. package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-S0ZpRUXN.mjs → ngx-histaff-alpha-core-sys-action.component-C_VAQLOE.mjs} +2 -2
  6. package/fesm2022/{ngx-histaff-alpha-core-sys-action.component-S0ZpRUXN.mjs.map → ngx-histaff-alpha-core-sys-action.component-C_VAQLOE.mjs.map} +1 -1
  7. package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-DdLVaGmB.mjs → ngx-histaff-alpha-core-template-editor.component-DmTad7AG.mjs} +2 -2
  8. package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-DdLVaGmB.mjs.map → ngx-histaff-alpha-core-template-editor.component-DmTad7AG.mjs.map} +1 -1
  9. package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-D7kdGgFZ.mjs → ngx-histaff-alpha-core-toast-loading.component-C3JfOCoY.mjs} +2 -2
  10. package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-D7kdGgFZ.mjs.map → ngx-histaff-alpha-core-toast-loading.component-C3JfOCoY.mjs.map} +1 -1
  11. package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-C2MRQLls.mjs → ngx-histaff-alpha-core-workflow-consume.component-BvFyWEqO.mjs} +2 -2
  12. package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-C2MRQLls.mjs.map → ngx-histaff-alpha-core-workflow-consume.component-BvFyWEqO.mjs.map} +1 -1
  13. package/fesm2022/{ngx-histaff-alpha-db-settings.component-BliMPr0A.mjs → ngx-histaff-alpha-db-settings.component-CmO49AZU.mjs} +5 -5
  14. package/fesm2022/{ngx-histaff-alpha-db-settings.component-BliMPr0A.mjs.map → ngx-histaff-alpha-db-settings.component-CmO49AZU.mjs.map} +1 -1
  15. package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-Ky5KiJ0p.mjs → ngx-histaff-alpha-design-wrapper.component-BpGl04Dv.mjs} +49 -7
  16. package/fesm2022/ngx-histaff-alpha-design-wrapper.component-BpGl04Dv.mjs.map +1 -0
  17. package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-NqkSYCoA.mjs → ngx-histaff-alpha-design-wrapper.route-D3Lpsk-N.mjs} +5 -5
  18. package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-NqkSYCoA.mjs.map → ngx-histaff-alpha-design-wrapper.route-D3Lpsk-N.mjs.map} +1 -1
  19. package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-B1G4bcjr.mjs → ngx-histaff-alpha-hrm-schema.component-Bd3CdbC_.mjs} +2 -2
  20. package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-B1G4bcjr.mjs.map → ngx-histaff-alpha-hrm-schema.component-Bd3CdbC_.mjs.map} +1 -1
  21. package/fesm2022/{ngx-histaff-alpha-live-form.component-BEq38Xps.mjs → ngx-histaff-alpha-live-form.component-LdFysTvc.mjs} +91 -139
  22. package/fesm2022/ngx-histaff-alpha-live-form.component-LdFysTvc.mjs.map +1 -0
  23. package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-ls0sZJcJ.mjs → ngx-histaff-alpha-ngx-histaff-alpha-TWTSrQ0J.mjs} +295 -309
  24. package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-TWTSrQ0J.mjs.map +1 -0
  25. package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BajN-snY.mjs → ngx-histaff-alpha-simple-chat.component-Bijz8uoH.mjs} +2 -2
  26. package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BajN-snY.mjs.map → ngx-histaff-alpha-simple-chat.component-Bijz8uoH.mjs.map} +1 -1
  27. package/fesm2022/{ngx-histaff-alpha-template-list.component-BtsN7KE4.mjs → ngx-histaff-alpha-template-list.component-CKNXhE7n.mjs} +2 -2
  28. package/fesm2022/{ngx-histaff-alpha-template-list.component-BtsN7KE4.mjs.map → ngx-histaff-alpha-template-list.component-CKNXhE7n.mjs.map} +1 -1
  29. package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-B-goIeUx.mjs → ngx-histaff-alpha-tracker-studio.component-BLFeI6xO.mjs} +2 -2
  30. package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-B-goIeUx.mjs.map → ngx-histaff-alpha-tracker-studio.component-BLFeI6xO.mjs.map} +1 -1
  31. package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-Btmiiris.mjs → ngx-histaff-alpha-wf-form-assign.component-nct49SFr.mjs} +2 -2
  32. package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-Btmiiris.mjs.map → ngx-histaff-alpha-wf-form-assign.component-nct49SFr.mjs.map} +1 -1
  33. package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-C-xap0Tf.mjs → ngx-histaff-alpha-wf-global-config.component-BSuUBIrY.mjs} +18 -2
  34. package/fesm2022/ngx-histaff-alpha-wf-global-config.component-BSuUBIrY.mjs.map +1 -0
  35. package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-DnUwQI1R.mjs → ngx-histaff-alpha-wf-instance-status.component-B58W1ZBc.mjs} +2 -2
  36. package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-DnUwQI1R.mjs.map → ngx-histaff-alpha-wf-instance-status.component-B58W1ZBc.mjs.map} +1 -1
  37. package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-Dng7IbhV.mjs → ngx-histaff-alpha-wf-instance-step-react.component-iyoN_zDV.mjs} +6 -7
  38. package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-iyoN_zDV.mjs.map +1 -0
  39. package/fesm2022/ngx-histaff-alpha-wf-lab.component-Db5dIgKZ.mjs +130 -0
  40. package/fesm2022/ngx-histaff-alpha-wf-lab.component-Db5dIgKZ.mjs.map +1 -0
  41. package/fesm2022/ngx-histaff-alpha.mjs +1 -1
  42. package/lib/app/libraries/core-form/core-form/enum-interfaces.d.ts +6 -0
  43. package/lib/app/libraries/core-form-design/core-form-design.component.d.ts +1 -1
  44. package/lib/app/libraries/core-form-design/core-form-group-editor.component.d.ts +1 -1
  45. package/lib/app/libraries/core-form-design/field-setting/field-setting-props.registry.d.ts +2 -0
  46. package/lib/app/libraries/core-form-design/field-setting/field-setting.component.d.ts +8 -2
  47. package/lib/app/libraries/core-form-design/field-setting/type-specific/seeker-props/seeker-props.component.d.ts +31 -7
  48. package/lib/app/libraries/core-form-design/field-setting/type-specific/seeker-props/seeker-props.service.d.ts +16 -0
  49. package/lib/app/libraries/core-form-design/live-form/live-form.component.d.ts +3 -1
  50. package/lib/app/libraries/core-form-design/props-host/props-host.component.d.ts +6 -8
  51. package/lib/app/libraries/core-orgchartflex/core-orgchartflex/core-orgchartflex.component.d.ts +13 -8
  52. package/lib/app/libraries/core-workflow-builder/core-workflow.service.d.ts +1 -1
  53. package/lib/app/libraries/core-workflow-builder/interfaces/IStepConfig.d.ts +10 -1
  54. package/lib/app/libraries/core-workflow-builder/wf-lab/wf-lab.component.d.ts +35 -0
  55. package/lib/app/libraries/core-workflow-builder/wf-process-design/wf-step-config-shell/wf-formui-config/wf-formui-config.component.d.ts +21 -0
  56. package/package.json +2 -2
  57. package/fesm2022/ngx-histaff-alpha-core-form-design.component-CyFCxOF0.mjs.map +0 -1
  58. package/fesm2022/ngx-histaff-alpha-design-wrapper.component-Ky5KiJ0p.mjs.map +0 -1
  59. package/fesm2022/ngx-histaff-alpha-email-props.component-Cf35Pexq.mjs +0 -14
  60. package/fesm2022/ngx-histaff-alpha-email-props.component-Cf35Pexq.mjs.map +0 -1
  61. package/fesm2022/ngx-histaff-alpha-form-array-props.component-jsc0BYaH.mjs +0 -26
  62. package/fesm2022/ngx-histaff-alpha-form-array-props.component-jsc0BYaH.mjs.map +0 -1
  63. package/fesm2022/ngx-histaff-alpha-live-form.component-BEq38Xps.mjs.map +0 -1
  64. package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-ls0sZJcJ.mjs.map +0 -1
  65. package/fesm2022/ngx-histaff-alpha-wf-global-config.component-C-xap0Tf.mjs.map +0 -1
  66. package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-Dng7IbhV.mjs.map +0 -1
@@ -1,23 +1,23 @@
1
- import { s as CanDeactivateGuard } from './ngx-histaff-alpha-ngx-histaff-alpha-ls0sZJcJ.mjs';
1
+ import { s as CanDeactivateGuard } from './ngx-histaff-alpha-ngx-histaff-alpha-TWTSrQ0J.mjs';
2
2
 
3
3
  const wfDesignWrapperRoutes = [
4
4
  {
5
5
  path: '',
6
- loadComponent: () => import('./ngx-histaff-alpha-design-wrapper.component-Ky5KiJ0p.mjs').then(m => m.DesignWrapperComponent),
6
+ loadComponent: () => import('./ngx-histaff-alpha-design-wrapper.component-BpGl04Dv.mjs').then(m => m.DesignWrapperComponent),
7
7
  canDeactivate: [CanDeactivateGuard],
8
8
  children: [
9
9
  {
10
10
  path: ':id',
11
11
  outlet: 'preview',
12
- loadComponent: () => import('./ngx-histaff-alpha-live-form.component-BEq38Xps.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent)
12
+ loadComponent: () => import('./ngx-histaff-alpha-live-form.component-LdFysTvc.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent)
13
13
  },
14
14
  ]
15
15
  },
16
16
  {
17
17
  path: ':id',
18
- loadComponent: () => import('./ngx-histaff-alpha-live-form.component-BEq38Xps.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent)
18
+ loadComponent: () => import('./ngx-histaff-alpha-live-form.component-LdFysTvc.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent)
19
19
  }
20
20
  ];
21
21
 
22
22
  export { wfDesignWrapperRoutes };
23
- //# sourceMappingURL=ngx-histaff-alpha-design-wrapper.route-NqkSYCoA.mjs.map
23
+ //# sourceMappingURL=ngx-histaff-alpha-design-wrapper.route-D3Lpsk-N.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-histaff-alpha-design-wrapper.route-NqkSYCoA.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/design-wrapper/design-wrapper.route.ts"],"sourcesContent":["import { Routes } from '@angular/router';\r\nimport { CanDeactivateGuard } from '../../../guards/can-deactivate.guard';\r\n\r\nexport const wfDesignWrapperRoutes: Routes = [\r\n {\r\n path: '',\r\n loadComponent: () => import('./design-wrapper.component').then(m => m.DesignWrapperComponent),\r\n canDeactivate: [CanDeactivateGuard],\r\n children: [\r\n {\r\n path: ':id',\r\n outlet: 'preview',\r\n loadComponent: () => import('../../core-form-design/live-form/live-form.component').then(m => m.LiveFormComponent)\r\n },\r\n ]\r\n },\r\n {\r\n path: ':id',\r\n loadComponent: () => import('../../core-form-design/live-form/live-form.component').then(m => m.LiveFormComponent)\r\n }\r\n]"],"names":[],"mappings":";;AAGa,MAAA,qBAAqB,GAAW;AACzC,IAAA;AACI,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MAAM,OAAO,2DAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC;QAC7F,aAAa,EAAE,CAAC,kBAAkB,CAAC;AACnC,QAAA,QAAQ,EAAE;AACN,YAAA;AACI,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,aAAa,EAAE,MAAM,OAAO,sDAAsD,oCAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB;AACpH,aAAA;AACJ;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,aAAa,EAAE,MAAM,OAAO,sDAAsD,oCAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB;AACpH;;;;;"}
1
+ {"version":3,"file":"ngx-histaff-alpha-design-wrapper.route-D3Lpsk-N.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/design-wrapper/design-wrapper.route.ts"],"sourcesContent":["import { Routes } from '@angular/router';\r\nimport { CanDeactivateGuard } from '../../../guards/can-deactivate.guard';\r\n\r\nexport const wfDesignWrapperRoutes: Routes = [\r\n {\r\n path: '',\r\n loadComponent: () => import('./design-wrapper.component').then(m => m.DesignWrapperComponent),\r\n canDeactivate: [CanDeactivateGuard],\r\n children: [\r\n {\r\n path: ':id',\r\n outlet: 'preview',\r\n loadComponent: () => import('../../core-form-design/live-form/live-form.component').then(m => m.LiveFormComponent)\r\n },\r\n ]\r\n },\r\n {\r\n path: ':id',\r\n loadComponent: () => import('../../core-form-design/live-form/live-form.component').then(m => m.LiveFormComponent)\r\n }\r\n]"],"names":[],"mappings":";;AAGa,MAAA,qBAAqB,GAAW;AACzC,IAAA;AACI,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MAAM,OAAO,2DAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC;QAC7F,aAAa,EAAE,CAAC,kBAAkB,CAAC;AACnC,QAAA,QAAQ,EAAE;AACN,YAAA;AACI,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,aAAa,EAAE,MAAM,OAAO,sDAAsD,oCAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB;AACpH,aAAA;AACJ;AACJ,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,aAAa,EAAE,MAAM,OAAO,sDAAsD,oCAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB;AACpH;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Component } from '@angular/core';
3
- import { B as BaseComponent, A as AppService } from './ngx-histaff-alpha-ngx-histaff-alpha-ls0sZJcJ.mjs';
3
+ import { B as BaseComponent, A as AppService } from './ngx-histaff-alpha-ngx-histaff-alpha-TWTSrQ0J.mjs';
4
4
  import { finalize } from 'rxjs';
5
5
 
6
6
  class HrmSchemaComponent extends BaseComponent {
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
36
36
  }] });
37
37
 
38
38
  export { HrmSchemaComponent };
39
- //# sourceMappingURL=ngx-histaff-alpha-hrm-schema.component-B1G4bcjr.mjs.map
39
+ //# sourceMappingURL=ngx-histaff-alpha-hrm-schema.component-Bd3CdbC_.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-histaff-alpha-hrm-schema.component-B1G4bcjr.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/root/hrm-schema/hrm-schema.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/root/hrm-schema/hrm-schema.component.html"],"sourcesContent":["import { AfterViewInit, Component, inject } from '@angular/core';\r\nimport { AppService } from '../../services/app.service';\r\nimport { BaseComponent } from '../../libraries/base-component/base/base.component';\r\nimport { finalize } from 'rxjs';\r\n\r\ninterface SchemaReport {\r\n name: string;\r\n success: boolean;\r\n durationMs: number;\r\n logs: string[];\r\n errors: string[];\r\n}\r\n\r\n@Component({\r\n selector: 'hrm-schema',\r\n imports: [],\r\n templateUrl: './hrm-schema.component.html',\r\n styleUrl: './hrm-schema.component.scss'\r\n})\r\nexport class HrmSchemaComponent extends BaseComponent implements AfterViewInit {\r\n reports: SchemaReport[] = [];\r\n loading: boolean = false;\r\n appService = inject(AppService)\r\n\r\n get maxDuration(): number {\r\n return this.reports.length ? Math.max(...this.reports.map(r => r.durationMs)) : 1;\r\n }\r\n\r\n // Scale bar width as percentage\r\n getWidth(report: SchemaReport): string {\r\n return `${(report.durationMs / this.maxDuration) * 100}%`;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.loading = true;\r\n this.subscriptions.push(\r\n this.appService.get('/api/HrmSchemaEssential/SchemaCheck').pipe(\r\n finalize(() => this.loading = false)\r\n ).subscribe(x => {\r\n if (x.ok && x.status === 200 && x.body?.statusCode === 200) {\r\n this.reports = x.body.innerBody;\r\n }\r\n })\r\n )\r\n })\r\n }\r\n}\r\n","\r\n<div class=\"container-fluid\">\r\n <div class=\"schema-bar-chart\">\r\n @for (r of reports; track $index) {\r\n <div class=\"schema-bar-row\">\r\n <div class=\"schema-label\">{{ r.name }}</div>\r\n <div class=\"schema-bar-wrapper\">\r\n <div class=\"schema-bar\" [class.success]=\"r.success\" [class.fail]=\"!r.success\" [style.width]=\"getWidth(r)\"\r\n [title]=\"r.durationMs + ' ms\\n' + (r.errors.length ? r.errors.join('; ') : 'OK')\">\r\n {{ r.durationMs }} ms\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>"],"names":[],"mappings":";;;;;AAmBM,MAAO,kBAAmB,SAAQ,aAAa,CAAA;AANrD,IAAA,WAAA,GAAA;;QAOE,IAAO,CAAA,OAAA,GAAmB,EAAE;QAC5B,IAAO,CAAA,OAAA,GAAY,KAAK;AACxB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAyBhC;AAvBC,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC;;;AAInF,IAAA,QAAQ,CAAC,MAAoB,EAAA;AAC3B,QAAA,OAAO,CAAG,EAAA,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,GAAG;;IAG3D,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,IAAI,CAC7D,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CACrC,CAAC,SAAS,CAAC,CAAC,IAAG;AACd,gBAAA,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,GAAG,EAAE;oBAC1D,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS;;aAElC,CAAC,CACH;AACH,SAAC,CAAC;;8GA1BO,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,6FCnB/B,4pBAeM,EAAA,MAAA,EAAA,CAAA,sfAAA,CAAA,EAAA,CAAA,CAAA;;2FDIO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,EAAE,EAAA,QAAA,EAAA,4pBAAA,EAAA,MAAA,EAAA,CAAA,sfAAA,CAAA,EAAA;;;;;"}
1
+ {"version":3,"file":"ngx-histaff-alpha-hrm-schema.component-Bd3CdbC_.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/root/hrm-schema/hrm-schema.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/root/hrm-schema/hrm-schema.component.html"],"sourcesContent":["import { AfterViewInit, Component, inject } from '@angular/core';\r\nimport { AppService } from '../../services/app.service';\r\nimport { BaseComponent } from '../../libraries/base-component/base/base.component';\r\nimport { finalize } from 'rxjs';\r\n\r\ninterface SchemaReport {\r\n name: string;\r\n success: boolean;\r\n durationMs: number;\r\n logs: string[];\r\n errors: string[];\r\n}\r\n\r\n@Component({\r\n selector: 'hrm-schema',\r\n imports: [],\r\n templateUrl: './hrm-schema.component.html',\r\n styleUrl: './hrm-schema.component.scss'\r\n})\r\nexport class HrmSchemaComponent extends BaseComponent implements AfterViewInit {\r\n reports: SchemaReport[] = [];\r\n loading: boolean = false;\r\n appService = inject(AppService)\r\n\r\n get maxDuration(): number {\r\n return this.reports.length ? Math.max(...this.reports.map(r => r.durationMs)) : 1;\r\n }\r\n\r\n // Scale bar width as percentage\r\n getWidth(report: SchemaReport): string {\r\n return `${(report.durationMs / this.maxDuration) * 100}%`;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.loading = true;\r\n this.subscriptions.push(\r\n this.appService.get('/api/HrmSchemaEssential/SchemaCheck').pipe(\r\n finalize(() => this.loading = false)\r\n ).subscribe(x => {\r\n if (x.ok && x.status === 200 && x.body?.statusCode === 200) {\r\n this.reports = x.body.innerBody;\r\n }\r\n })\r\n )\r\n })\r\n }\r\n}\r\n","\r\n<div class=\"container-fluid\">\r\n <div class=\"schema-bar-chart\">\r\n @for (r of reports; track $index) {\r\n <div class=\"schema-bar-row\">\r\n <div class=\"schema-label\">{{ r.name }}</div>\r\n <div class=\"schema-bar-wrapper\">\r\n <div class=\"schema-bar\" [class.success]=\"r.success\" [class.fail]=\"!r.success\" [style.width]=\"getWidth(r)\"\r\n [title]=\"r.durationMs + ' ms\\n' + (r.errors.length ? r.errors.join('; ') : 'OK')\">\r\n {{ r.durationMs }} ms\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>"],"names":[],"mappings":";;;;;AAmBM,MAAO,kBAAmB,SAAQ,aAAa,CAAA;AANrD,IAAA,WAAA,GAAA;;QAOE,IAAO,CAAA,OAAA,GAAmB,EAAE;QAC5B,IAAO,CAAA,OAAA,GAAY,KAAK;AACxB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAyBhC;AAvBC,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC;;;AAInF,IAAA,QAAQ,CAAC,MAAoB,EAAA;AAC3B,QAAA,OAAO,CAAG,EAAA,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,GAAG;;IAG3D,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,IAAI,CAC7D,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CACrC,CAAC,SAAS,CAAC,CAAC,IAAG;AACd,gBAAA,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,GAAG,EAAE;oBAC1D,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS;;aAElC,CAAC,CACH;AACH,SAAC,CAAC;;8GA1BO,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,6FCnB/B,4pBAeM,EAAA,MAAA,EAAA,CAAA,sfAAA,CAAA,EAAA,CAAA,CAAA;;2FDIO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,EAAE,EAAA,QAAA,EAAA,4pBAAA,EAAA,MAAA,EAAA,CAAA,sfAAA,CAAA,EAAA;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { input, signal, computed, isDevMode, inject, HostListener, ChangeDetectionStrategy, Component, output, ChangeDetectorRef, Injector, effect } from '@angular/core';
3
- import { B as BaseComponent, a9 as EnumImageResolverType, m as CoreWorkflowService, o as CoreFormService, b as AlertService, a as AppConfigService, v as alertOptions, M as MultiLanguageService, e as TranslatePipe, I as ImageErrorResolverDirective, aa as NormalizeHumanNamePipe, T as TooltipDirective, ab as CoreIosSwitcherComponent, c as CoreTerminalSpinnerComponent, d as CorePageHeaderComponent, z as DomService, O as CoreParamControlComponent, x as CoreFormDesignService, R as ApplicationHelpService, Y as JsonService, A as AppService, i as EnumFormBaseContolType, V as EnumCorePageEditMode, Z as EnumCoreButtonVNSCode, n as EnumCoreFormControlSeekerSourceType, U as HotKeysDirective, W as CoreFormComponent, a6 as JsonSafePipe } from './ngx-histaff-alpha-ngx-histaff-alpha-ls0sZJcJ.mjs';
4
- import { catchError, of, finalize, BehaviorSubject, filter, distinctUntilChanged } from 'rxjs';
3
+ import { B as BaseComponent, aa as EnumImageResolverType, m as CoreWorkflowService, o as CoreFormService, b as AlertService, a as AppConfigService, v as alertOptions, M as MultiLanguageService, e as TranslatePipe, I as ImageErrorResolverDirective, ab as NormalizeHumanNamePipe, T as TooltipDirective, ac as CoreIosSwitcherComponent, c as CoreTerminalSpinnerComponent, d as CorePageHeaderComponent, z as DomService, O as CoreParamControlComponent, x as CoreFormDesignService, U as ApplicationHelpService, Z as JsonService, A as AppService, i as EnumFormBaseContolType, W as EnumCorePageEditMode, _ as EnumCoreButtonVNSCode, n as EnumCoreFormControlSeekerSourceType, V as HotKeysDirective, X as CoreFormComponent, a7 as JsonSafePipe } from './ngx-histaff-alpha-ngx-histaff-alpha-TWTSrQ0J.mjs';
4
+ import { catchError, of, finalize, BehaviorSubject, filter, distinctUntilChanged, tap } from 'rxjs';
5
5
  import { NgClass, JsonPipe, NgStyle } from '@angular/common';
6
6
  import { RouterLink, Router, ActivatedRoute } from '@angular/router';
7
7
  import * as i1 from '@angular/forms';
@@ -355,6 +355,18 @@ class LiveFormComponent extends BaseComponent {
355
355
  this.$reactMode = signal(false);
356
356
  this.$onBehalfMode = computed(() => this.$workflow()?.allowOnBehalf);
357
357
  this.$reactInjectedFieldsAdded = signal(false);
358
+ this.$effectiveSections = computed(() => {
359
+ const raw = this.$inputSections();
360
+ // CHÌA KHÓA VÀNG
361
+ const steps = this.wfs.$currentSteps();
362
+ const step = steps?.[0]; // Kickoff & React đều đúng
363
+ if (!step)
364
+ return raw;
365
+ const formUi = step.config?.formUi;
366
+ if (!formUi)
367
+ return raw;
368
+ return this.applyFormUi(raw, formUi);
369
+ });
358
370
  // 🔁 Reactive bindings
359
371
  this.$inputSections = signal([
360
372
  {
@@ -400,37 +412,15 @@ class LiveFormComponent extends BaseComponent {
400
412
  effect(() => {
401
413
  const context = this.$workflowReactContext();
402
414
  const form = this.$form();
403
- const reactMode = this.$reactMode();
404
- const ___reasonsField = this.wfs.liveForm?.get('___reasons');
405
- if (!context || !form || (reactMode && !___reasonsField))
415
+ if (!context || !form)
406
416
  return;
407
417
  try {
408
418
  const attributesJson = context.instance.attributesJson;
409
419
  const formValue = JSON.parse(attributesJson);
410
- const reasons = context.instance.reasons;
411
- let ___reasons = "";
412
- try {
413
- ___reasons = JSON.parse(reasons);
414
- }
415
- catch (err) {
416
- if (isDevMode()) {
417
- this.alertService.error(err?.message || "Error while deserializing 'reasons' value from the instance");
418
- }
419
- }
420
- try {
421
- delete formValue['___reason']; // Focus only on new ___reason
422
- }
423
- catch (err) {
424
- if (isDevMode()) {
425
- this.alertService.error(err?.message || "Error while delete '___reason' value for the attributes");
426
- }
427
- }
428
420
  // 🔑 Ensure FormArrays have correct length BEFORE patching
429
421
  this.cfs.ensureFormArraysMatch(this.wfs.liveForm, formValue, this.cfs.formArrayConfigMap);
422
+ console.log("this.wfs.liveForm.patchValue(formValue)", formValue);
430
423
  this.wfs.liveForm.patchValue(formValue);
431
- if (reactMode) {
432
- ___reasonsField.patchValue(___reasons);
433
- }
434
424
  }
435
425
  catch (err) {
436
426
  if (isDevMode()) {
@@ -459,7 +449,7 @@ class LiveFormComponent extends BaseComponent {
459
449
  this.$reactMode.set(true);
460
450
  this.clearInjectedFields();
461
451
  // this.makeOriginReadonly();
462
- this.addReactInjectedFields();
452
+ //this.addReactInjectedFields();
463
453
  }
464
454
  }
465
455
  else {
@@ -533,7 +523,7 @@ class LiveFormComponent extends BaseComponent {
533
523
  }
534
524
  const request = {
535
525
  workflowId: this.wfs.$currentFlow()?.id,
536
- attributes: this.cfs.getAttributesWithWys(this.$form()), //this.$form()?.getRawValue(),
526
+ attributes: this.cfs.getAttributesWithWys(this.$form()),
537
527
  ___targetEmployees: this.$form()?.get('___targetEmployees')?.getRawValue()
538
528
  };
539
529
  this.$backendMessage.set('');
@@ -613,11 +603,9 @@ class LiveFormComponent extends BaseComponent {
613
603
  if (!this.$designMode() && !this.$previewMode()) {
614
604
  if (!!this.workflowId) {
615
605
  setTimeout(() => {
616
- this.$loading.set(true);
617
- this.subscriptions.push(this.wfs.loadWorkflowWithAfInstance(this.workflowId).pipe(catchError(err => {
618
- this.$loading.set(false);
606
+ this.subscriptions.push(this.wfs.loadWorkflowWithAfInstance(this.workflowId).pipe(tap(_ => this.$loading.set(true)), catchError(err => {
619
607
  return of(err);
620
- })).subscribe(x => {
608
+ }), finalize(() => this.$loading.set(false))).subscribe(x => {
621
609
  this.$loading.set(false);
622
610
  if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
623
611
  const workflow = x.body.innerBody;
@@ -632,10 +620,7 @@ class LiveFormComponent extends BaseComponent {
632
620
  this.$submitApi.set(instance.submitApi);
633
621
  this.coreFormDesignService.$afInstance.set(instance);
634
622
  this.clearInjectedFields();
635
- if (this.$reactMode()) {
636
- this.addReactInjectedFields();
637
- }
638
- else {
623
+ if (!this.$reactMode()) {
639
624
  this.addKickOffInjectedFields();
640
625
  }
641
626
  }
@@ -653,7 +638,7 @@ class LiveFormComponent extends BaseComponent {
653
638
  this.$submitApi.set(this.coreFormDesignService.$afInstance().submitApi);
654
639
  this.clearInjectedFields();
655
640
  if (this.$reactMode()) {
656
- this.addReactInjectedFields();
641
+ //this.addReactInjectedFields();
657
642
  }
658
643
  else {
659
644
  this.addKickOffInjectedFields();
@@ -664,19 +649,7 @@ class LiveFormComponent extends BaseComponent {
664
649
  const form = e.formGroup;
665
650
  this.$form.set(form);
666
651
  this.wfs.liveForm = form;
667
- if (this.$reactMode()) {
668
- this.$inputSections().forEach(s => {
669
- s.rows.forEach(r => {
670
- r.forEach(c => {
671
- const toBeDisabled = c.field !== '___reason';
672
- if (toBeDisabled) {
673
- form.get(c.field)?.disable();
674
- }
675
- });
676
- });
677
- });
678
- }
679
- else {
652
+ if (!this.$reactMode()) {
680
653
  this.wfs.liveForm.get('___submitOnBehalf')?.valueChanges.subscribe(x => {
681
654
  const inputSections = this.$inputSections();
682
655
  const targetCtrl = this.coreFormService.getFormBaseControlByName(inputSections, '___targetEmployees');
@@ -684,10 +657,10 @@ class LiveFormComponent extends BaseComponent {
684
657
  targetCtrl.hidden = !x;
685
658
  this.$inputSections.set([...inputSections]);
686
659
  // Optional: restore current form values without triggering another valueChanges loop
687
- const currentValue = this.cfs.getAttributesWithWys(this.wfs.liveForm); //this.wfs.liveForm.getRawValue();
660
+ const currentValue = this.cfs.getAttributesWithWys(this.wfs.liveForm);
661
+ console.log("onLiveFormCreated", currentValue);
688
662
  setTimeout(() => {
689
663
  this.wfs.liveForm.patchValue({
690
- ...currentValue,
691
664
  ___submitOnBehalf: x // ensure value stays intact
692
665
  }, { emitEvent: false });
693
666
  if (!x && targetCtrl) {
@@ -771,30 +744,6 @@ class LiveFormComponent extends BaseComponent {
771
744
  ]
772
745
  ]
773
746
  });
774
- sections.push({
775
- rows: [
776
- [
777
- {
778
- field: "___reason",
779
- type: "text",
780
- value: '',
781
- label: "UI_FORM_CONTROL_LABEL.REASON",
782
- flexSize: 12,
783
- controlType: EnumFormBaseContolType.TEXTAREA,
784
- textareaRows: 5,
785
- /*
786
- validators: [
787
- {
788
- name: 'required',
789
- validator: Validators.required,
790
- errorMessage: EnumTranslateKey.UI_FORM_CONTROL_ERROR_REQUIRED
791
- }
792
- ],
793
- */
794
- }
795
- ]
796
- ]
797
- });
798
747
  if (!!workflow && !!workflow.allowCustomCc) {
799
748
  sections.push({
800
749
  rows: [
@@ -851,66 +800,28 @@ class LiveFormComponent extends BaseComponent {
851
800
  }
852
801
  this.$inputSections.set(sections);
853
802
  }
854
- addReactInjectedFields() {
855
- if (this.$reactInjectedFieldsAdded())
856
- return;
857
- const current = this.$inputSections();
858
- const sections = [...current];
859
- sections.push({
860
- rows: [
861
- [
862
- {
863
- field: "___reasons",
864
- type: "text",
865
- value: '',
866
- label: "UI_FORM_CONTROL_LABEL.REASON_HISTORY",
867
- flexSize: 12,
868
- controlType: EnumFormBaseContolType.TEXTAREA,
869
- textareaRows: 5,
870
- disabled: true,
871
- }
872
- ]
873
- ]
874
- });
875
- sections.push({
876
- rows: [
877
- [
878
- {
879
- field: "___reason",
880
- type: "text",
881
- value: '',
882
- label: "UI_FORM_CONTROL_LABEL.REASON",
883
- flexSize: 12,
884
- controlType: EnumFormBaseContolType.TEXTAREA,
885
- textareaRows: 5,
886
- // validators: [
887
- // {
888
- // name: 'required',
889
- // validator: Validators.required,
890
- // errorMessage: EnumTranslateKey.UI_FORM_CONTROL_ERROR_REQUIRED
891
- // }
892
- // ],
893
- }
894
- ]
895
- ]
896
- });
897
- this.$inputSections.set(sections);
898
- this.$reactInjectedFieldsAdded.set(true);
899
- }
900
803
  clearInjectedFields() {
901
- const current = this.$inputSections();
902
- const sections = [...current];
903
- console.log("sections before in clearInjectedFields", sections);
904
- sections
905
- .map(section => ({
906
- ...section,
907
- rows: section.rows
908
- ?.map(row => row.filter(ctrl => ctrl.field.indexOf('___') !== 0))
909
- .filter(row => row.length > 0)
910
- }))
911
- .filter(section => section.rows?.length);
912
- console.log("sections after in clearInjectedFields, being set", sections);
913
- this.$inputSections.set(sections);
804
+ const original = this.$inputSections();
805
+ if (!original || !original.length)
806
+ return;
807
+ // Tạo bản sao deep để tránh mutate sai
808
+ const cleaned = original
809
+ .map(section => {
810
+ // deep clone rows
811
+ const newRows = (section.rows || [])
812
+ .map(row => row.filter(ctrl => !ctrl.field.startsWith('___')) // remove injected
813
+ )
814
+ .filter(row => row.length > 0); // remove empty rows
815
+ // Nếu rows rỗng bỏ luôn section
816
+ if (!newRows.length)
817
+ return null;
818
+ return {
819
+ ...section,
820
+ rows: newRows
821
+ };
822
+ })
823
+ .filter(x => x !== null);
824
+ this.$inputSections.set(cleaned);
914
825
  }
915
826
  react(reactType) {
916
827
  const context = this.$workflowReactContext();
@@ -920,8 +831,9 @@ class LiveFormComponent extends BaseComponent {
920
831
  }
921
832
  const { workflow, instance, step, actor } = context;
922
833
  const unitedCorrelationIds = `${workflow.id}___${instance.correlationId}___${step.id}___${actor.id}`;
834
+ const updatedAttributes = this.cfs.getAttributesWithWys(this.$form());
923
835
  this.$loading.set(true);
924
- this.subscriptions.push(this.wfs.react(unitedCorrelationIds, reactType, this.wfs.liveForm.get('___reason')?.getRawValue()).pipe(catchError(err => {
836
+ this.subscriptions.push(this.wfs.react(unitedCorrelationIds, reactType, "", updatedAttributes).pipe(catchError(err => {
925
837
  this.$loading.set(false);
926
838
  return of(err);
927
839
  })).subscribe(x => {
@@ -930,12 +842,52 @@ class LiveFormComponent extends BaseComponent {
930
842
  }
931
843
  }));
932
844
  }
845
+ applyFormUi(sections, formUi) {
846
+ if (!sections || !formUi)
847
+ return sections;
848
+ const hidden = formUi.hidden ?? {};
849
+ const readonly = formUi.readonly ?? {};
850
+ const required = formUi.required ?? {};
851
+ return sections.map(sec => ({
852
+ ...sec,
853
+ rows: sec.rows.map(row => row.map(ctrl => {
854
+ const c = { ...ctrl };
855
+ const key = c.field;
856
+ // 1) Hidden
857
+ if (hidden[key]) {
858
+ c.hidden = true;
859
+ return c;
860
+ }
861
+ // 2) Readonly
862
+ if (readonly[key]) {
863
+ c.readonly = true;
864
+ c.disabled = true;
865
+ }
866
+ // 3) Required
867
+ if (required[key]) {
868
+ c.validators = [
869
+ ...(c.validators ?? []),
870
+ {
871
+ name: 'required',
872
+ validator: Validators.required,
873
+ errorMessage: `${c.label ?? c.field} is required`
874
+ }
875
+ ];
876
+ }
877
+ else {
878
+ // remove required if exists (optional)
879
+ c.validators = (c.validators ?? []).filter(v => v.name !== 'required');
880
+ }
881
+ return c;
882
+ }))
883
+ }));
884
+ }
933
885
  ngOnDestroy() {
934
886
  this.subscriptions.forEach(x => x?.unsubscribe());
935
887
  this.clearInjectedFields();
936
888
  }
937
889
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: LiveFormComponent, deps: [{ token: MultiLanguageService }, { token: CoreFormService }], target: i0.ɵɵFactoryTarget.Component }); }
938
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: LiveFormComponent, isStandalone: true, selector: "live-form", inputs: { $designMode: { classPropertyName: "$designMode", publicName: "$designMode", isSignal: true, isRequired: false, transformFunction: null }, $forKickOff: { classPropertyName: "$forKickOff", publicName: "$forKickOff", isSignal: true, isRequired: false, transformFunction: null }, $workflowReactContext: { classPropertyName: "$workflowReactContext", publicName: "$workflowReactContext", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { $onClose: "$onClose" }, usesInheritance: true, ngImport: i0, template: "<div class=\"live-form-container\" [hotKeys]=\"['F3', 'F6', 'Escape']\">\r\n\r\n @if ($normalMode()) {\r\n <div class=\"form-wrapper live-form\" [ngStyle]=\"{\r\n width: !!coreFormDesignService.$afInstance().width ? coreFormDesignService.$afInstance().width + 'px' : 'unset'\r\n }\">\r\n <div class=\"live-form-header\">\r\n <core-page-header [title]=\"coreFormDesignService.$afInstance().captionCode | translate : lang\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n\r\n <core-form\r\n [inputSections]=\"$inputSections()\"\r\n [customFormButtonItems]=\"$customButtons()!\"\r\n [forceCreateNewForm]=\"true\"\r\n [mode$]=\"mode$\"\r\n [hideButtons]=\"$previewMode()\"\r\n [hideCalculatedSection]=\"true\"\r\n [hideDevSector]=\"true\"\r\n [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [buttonGroupTemplateRef]=\"buttonGroupTemplateRef\"\r\n [checkError$]=\"checkError$\"\r\n (onSubmit)=\"onLiveSubmit($event)\"\r\n (onFormCreated)=\"onLiveFormCreated($event)\"\r\n (onCancal)=\"onClose()\"\r\n />\r\n\r\n @if ($previewMode()) {\r\n <div class=\"show-routing-wrapper\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"toggleShowRouting()\">\r\n {{ $showLiveRouting() ? 'Hide Routing' : 'Show Routing' }}\r\n </button>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n <div class=\"routing-preview-wrapper\" [class.visible]=\"$showLiveRouting()\">\r\n @if ($showLiveRouting()) {\r\n <routing-preview-panel />\r\n }\r\n </div>\r\n\r\n\r\n } @else {\r\n <div class=\"modal-container\">\r\n <div class=\"modal-content-root no-padding\">\r\n\r\n <div class=\"form-wrapper live-form\" [class.d-none]=\"$showLiveRouting()\" [ngStyle]=\"{\r\n width: !!coreFormDesignService.$afInstance().width ? coreFormDesignService.$afInstance().width + 'px' : 'unset'\r\n }\">\r\n\r\n <div class=\"live-form-header\">\r\n <core-page-header [title]=\"coreFormDesignService.$afInstance().captionCode | translate : lang\" [hideButtonGroup]=\"true\" />\r\n <div class=\"preview-close-icon\" (click)=\"onClose()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <core-form\r\n [inputSections]=\"$inputSections()\"\r\n [customFormButtonItems]=\"$customButtons()!\"\r\n [forceCreateNewForm]=\"true\"\r\n [hideCalculatedSection]=\"true\"\r\n [mode$]=\"mode$\"\r\n [hideButtons]=\"$previewMode()\"\r\n [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [buttonGroupTemplateRef]=\"buttonGroupTemplateRef\"\r\n [hideDevSector]=\"false\"\r\n [checkError$]=\"checkError$\"\r\n (onSubmit)=\"onLiveSubmit($event)\"\r\n (onFormCreated)=\"onLiveFormCreated($event)\"\r\n (onCancal)=\"onClose()\"\r\n />\r\n\r\n <div class=\"submition-wrapper\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"toggleShowRouting()\">\r\n {{ $showLiveRouting() ? 'Hide Routing' : 'Show Routing' }}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"initialSubmit()\">\r\n Submit \r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"routing-preview-wrapper\" [class.visible]=\"$showLiveRouting()\">\r\n @if ($showLiveRouting()) {\r\n <div class=\"h50\"></div>\r\n <routing-preview-panel [$minWidth]=\"coreFormDesignService.$afInstance().width\"/>\r\n <div class=\"h50\"></div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n <ng-template #bottomTemplateRef>\r\n <!-- <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $inputSectionsJson() }}</pre> -->\r\n <!-- @if (isDevMode) {\r\n <p class=\"dev-hint\">F3/ESC: Show/Hide afInstance | F6/ESC: Show/Hide Workflow</p>\r\n } -->\r\n @if ($showAfInstanceJson()) {\r\n <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $afInstanceJson() }}</pre>\r\n }\r\n @if ($showWfWorkflowJson()) {\r\n <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $wfWorkflowJson() }}</pre>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #buttonGroupTemplateRef>\r\n <div class=\"button-group\">\r\n <div class=\"button-group-left\"></div>\r\n <div class=\"button-group-right\">\r\n @if ($reactMode()) {\r\n @if (true) {\r\n <button type=\"button\" class=\"btn btn-secondary\">Cancel</button> \r\n }\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"react('REJECTED')\">Reject</button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"react('APPROVED')\">Approve</button>\r\n } @else {\r\n <button type=\"button\" class=\"btn btn-secondary\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary\">Send Request</button>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n</div>", styles: [".live-form-container .modal-container{overflow-y:auto!important;box-sizing:border-box}.live-form-container .form-wrapper.live-form{padding-top:0;padding-bottom:15px;background-color:#fff;position:relative}.live-form-container .form-wrapper.live-form .live-form-header{padding:0 15px}.live-form-container .form-wrapper.live-form .live-form-header .preview-close-icon{position:absolute;right:7px;top:6px;z-index:2;color:gray;cursor:pointer}.live-form-container .form-wrapper.live-form .live-form-header .preview-close-icon i{font-size:18px}.live-form-container .form-wrapper.live-form .submition-wrapper{display:flex;align-items:center;justify-content:flex-end;padding:0 24px;font-size:13px}.live-form-container .form-wrapper.live-form .submition-wrapper button{border-radius:0;font-size:13px}.live-form-container .form-wrapper.live-form .submition-wrapper button:not(:last-child){margin-right:8px}.live-form-container .form-wrapper.live-form .show-routing-wrapper{padding:15px;display:flex;align-items:center;justify-content:flex-end}.live-form-container .form-wrapper.live-form .show-routing-wrapper input{width:120px}.live-form-container .modal-content-root{padding:0;overflow-y:visible;background-color:transparent!important;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.live-form-container pre{background-color:#fff;color:#333;padding:1rem 1.5rem;border-radius:10px;box-shadow:0 2px 6px #00000014;font-family:Fira Code,monospace;font-size:.85rem;word-break:keep-all;overflow-x:auto;line-height:1.5;max-height:500px;overflow-y:auto;margin:0}.live-form-container .dev-hint{font-size:12px;color:#888;background-color:#f9f9f9;padding:6px 12px;margin:8px 0;border-left:4px solid #ccc}.live-form-container .h50{height:50px}.live-form-container .routing-preview-wrapper{overflow:hidden;max-height:0;opacity:0;transform:translateY(-10px);transition:max-height .4s ease-out,opacity .4s ease-out,transform .4s ease-out}.live-form-container .routing-preview-wrapper.visible{max-height:800px;overflow:visible;opacity:1;transform:translateY(0)}.live-form-container .show-routing-wrapper button{height:35px;font-size:13px;border-radius:0;color:#fff}.live-form-container .hidden-requester-selector{position:absolute;width:0;height:0;top:-200px;left:-200px;overflow:visible}.live-form-container .button-group{padding:15px;display:flex;align-items:center;justify-content:flex-end}.live-form-container .button-group button{height:35px;border-radius:0;font-size:13px;margin:0 7.5px;width:120px}.live-form-container .button-group button:last-child{margin-right:0}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: HotKeysDirective, selector: "[hotKeys]", inputs: ["hotKeys"] }, { kind: "component", type: RoutingPreviewPanelComponent, selector: "routing-preview-panel", inputs: ["$minWidth"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup", "htmlTooltipRef"], outputs: ["buttonClick"] }, { kind: "component", type: CoreFormComponent, selector: "core-form", inputs: ["formName", "width", "submitText", "leftInputSections", "leftInputSectionsFlexSize", "inputSections", "mode$", "bottomTemplateRef", "customFormButtonItems", "showCaptionButton", "disableSaveButton", "disableCancelButton", "checkError$", "hideButtons", "forceCreateNewForm", "secondBottomTemplateRef", "hideDevSector", "hideCalculatedSection", "buttonGroupTemplateRef", "wrapEachSectionInAccordion", "gridMode"], outputs: ["onFormCreated", "onFormRefCreated", "onSubmit", "onSave", "onCancal", "buttonClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
890
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: LiveFormComponent, isStandalone: true, selector: "live-form", inputs: { $designMode: { classPropertyName: "$designMode", publicName: "$designMode", isSignal: true, isRequired: false, transformFunction: null }, $forKickOff: { classPropertyName: "$forKickOff", publicName: "$forKickOff", isSignal: true, isRequired: false, transformFunction: null }, $workflowReactContext: { classPropertyName: "$workflowReactContext", publicName: "$workflowReactContext", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { $onClose: "$onClose" }, usesInheritance: true, ngImport: i0, template: "<div class=\"live-form-container\" [hotKeys]=\"['F3', 'F6', 'Escape']\">\r\n\r\n @if ($normalMode()) {\r\n <div class=\"form-wrapper live-form\" [ngStyle]=\"{\r\n width: !!coreFormDesignService.$afInstance().width ? coreFormDesignService.$afInstance().width + 'px' : 'unset'\r\n }\">\r\n <div class=\"live-form-header\">\r\n <core-page-header [title]=\"coreFormDesignService.$afInstance().captionCode | translate : lang\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n\r\n <core-form\r\n [inputSections]=\"$effectiveSections()\"\r\n [customFormButtonItems]=\"$customButtons()!\"\r\n [forceCreateNewForm]=\"true\"\r\n [mode$]=\"mode$\"\r\n [hideButtons]=\"$previewMode()\"\r\n [hideCalculatedSection]=\"true\"\r\n [hideDevSector]=\"true\"\r\n [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [buttonGroupTemplateRef]=\"buttonGroupTemplateRef\"\r\n [checkError$]=\"checkError$\"\r\n (onSubmit)=\"onLiveSubmit($event)\"\r\n (onFormCreated)=\"onLiveFormCreated($event)\"\r\n (onCancal)=\"onClose()\"\r\n />\r\n\r\n @if ($previewMode()) {\r\n <div class=\"show-routing-wrapper\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"toggleShowRouting()\">\r\n {{ $showLiveRouting() ? 'Hide Routing' : 'Show Routing' }}\r\n </button>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n <div class=\"routing-preview-wrapper\" [class.visible]=\"$showLiveRouting()\">\r\n @if ($showLiveRouting()) {\r\n <routing-preview-panel />\r\n }\r\n </div>\r\n\r\n\r\n } @else {\r\n <div class=\"modal-container\">\r\n <div class=\"modal-content-root no-padding\">\r\n\r\n <div class=\"form-wrapper live-form\" [class.d-none]=\"$showLiveRouting()\" [ngStyle]=\"{\r\n width: !!coreFormDesignService.$afInstance().width ? coreFormDesignService.$afInstance().width + 'px' : 'unset'\r\n }\">\r\n\r\n <div class=\"live-form-header\">\r\n <core-page-header [title]=\"coreFormDesignService.$afInstance().captionCode | translate : lang\" [hideButtonGroup]=\"true\" />\r\n <div class=\"preview-close-icon\" (click)=\"onClose()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <core-form\r\n [inputSections]=\"$effectiveSections()\"\r\n [customFormButtonItems]=\"$customButtons()!\"\r\n [forceCreateNewForm]=\"true\"\r\n [hideCalculatedSection]=\"true\"\r\n [mode$]=\"mode$\"\r\n [hideButtons]=\"$previewMode()\"\r\n [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [buttonGroupTemplateRef]=\"buttonGroupTemplateRef\"\r\n [hideDevSector]=\"false\"\r\n [checkError$]=\"checkError$\"\r\n (onSubmit)=\"onLiveSubmit($event)\"\r\n (onFormCreated)=\"onLiveFormCreated($event)\"\r\n (onCancal)=\"onClose()\"\r\n />\r\n\r\n <div class=\"submition-wrapper\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"toggleShowRouting()\">\r\n {{ $showLiveRouting() ? 'Hide Routing' : 'Show Routing' }}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"initialSubmit()\">\r\n Submit \r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"routing-preview-wrapper\" [class.visible]=\"$showLiveRouting()\">\r\n @if ($showLiveRouting()) {\r\n <div class=\"h50\"></div>\r\n <routing-preview-panel [$minWidth]=\"coreFormDesignService.$afInstance().width\"/>\r\n <div class=\"h50\"></div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n <ng-template #bottomTemplateRef>\r\n <!-- <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $inputSectionsJson() }}</pre> -->\r\n <!-- @if (isDevMode) {\r\n <p class=\"dev-hint\">F3/ESC: Show/Hide afInstance | F6/ESC: Show/Hide Workflow</p>\r\n } -->\r\n @if ($showAfInstanceJson()) {\r\n <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $afInstanceJson() }}</pre>\r\n }\r\n @if ($showWfWorkflowJson()) {\r\n <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $wfWorkflowJson() }}</pre>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #buttonGroupTemplateRef>\r\n <div class=\"button-group\">\r\n <div class=\"button-group-left\"></div>\r\n <div class=\"button-group-right\">\r\n @if ($reactMode()) {\r\n @if (true) {\r\n <button type=\"button\" class=\"btn btn-secondary\">Cancel</button> \r\n }\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"react('REJECTED')\">Reject</button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"react('APPROVED')\">Approve</button>\r\n } @else {\r\n <button type=\"button\" class=\"btn btn-secondary\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary\">Send Request</button>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n</div>", styles: [".live-form-container .modal-container{overflow-y:auto!important;box-sizing:border-box}.live-form-container .form-wrapper.live-form{padding-top:0;padding-bottom:15px;background-color:#fff;position:relative}.live-form-container .form-wrapper.live-form .live-form-header{padding:0 15px}.live-form-container .form-wrapper.live-form .live-form-header .preview-close-icon{position:absolute;right:7px;top:6px;z-index:2;color:gray;cursor:pointer}.live-form-container .form-wrapper.live-form .live-form-header .preview-close-icon i{font-size:18px}.live-form-container .form-wrapper.live-form .submition-wrapper{display:flex;align-items:center;justify-content:flex-end;padding:0 24px;font-size:13px}.live-form-container .form-wrapper.live-form .submition-wrapper button{border-radius:0;font-size:13px}.live-form-container .form-wrapper.live-form .submition-wrapper button:not(:last-child){margin-right:8px}.live-form-container .form-wrapper.live-form .show-routing-wrapper{padding:15px;display:flex;align-items:center;justify-content:flex-end}.live-form-container .form-wrapper.live-form .show-routing-wrapper input{width:120px}.live-form-container .modal-content-root{padding:0;overflow-y:visible;background-color:transparent!important;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.live-form-container pre{background-color:#fff;color:#333;padding:1rem 1.5rem;border-radius:10px;box-shadow:0 2px 6px #00000014;font-family:Fira Code,monospace;font-size:.85rem;word-break:keep-all;overflow-x:auto;line-height:1.5;max-height:500px;overflow-y:auto;margin:0}.live-form-container .dev-hint{font-size:12px;color:#888;background-color:#f9f9f9;padding:6px 12px;margin:8px 0;border-left:4px solid #ccc}.live-form-container .h50{height:50px}.live-form-container .routing-preview-wrapper{overflow:hidden;max-height:0;opacity:0;transform:translateY(-10px);transition:max-height .4s ease-out,opacity .4s ease-out,transform .4s ease-out}.live-form-container .routing-preview-wrapper.visible{max-height:800px;overflow:visible;opacity:1;transform:translateY(0)}.live-form-container .show-routing-wrapper button{height:35px;font-size:13px;border-radius:0;color:#fff}.live-form-container .hidden-requester-selector{position:absolute;width:0;height:0;top:-200px;left:-200px;overflow:visible}.live-form-container .button-group{padding:15px;display:flex;align-items:center;justify-content:flex-end}.live-form-container .button-group button{height:35px;border-radius:0;font-size:13px;margin:0 7.5px;width:120px}.live-form-container .button-group button:last-child{margin-right:0}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: HotKeysDirective, selector: "[hotKeys]", inputs: ["hotKeys"] }, { kind: "component", type: RoutingPreviewPanelComponent, selector: "routing-preview-panel", inputs: ["$minWidth"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup", "htmlTooltipRef"], outputs: ["buttonClick"] }, { kind: "component", type: CoreFormComponent, selector: "core-form", inputs: ["formName", "width", "submitText", "leftInputSections", "leftInputSectionsFlexSize", "inputSections", "mode$", "bottomTemplateRef", "customFormButtonItems", "showCaptionButton", "disableSaveButton", "disableCancelButton", "checkError$", "hideButtons", "forceCreateNewForm", "secondBottomTemplateRef", "hideDevSector", "hideCalculatedSection", "buttonGroupTemplateRef", "wrapEachSectionInAccordion", "gridMode"], outputs: ["onFormCreated", "onFormRefCreated", "onSubmit", "onSave", "onCancal", "buttonClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
939
891
  }
940
892
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: LiveFormComponent, decorators: [{
941
893
  type: Component,
@@ -947,7 +899,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
947
899
  CorePageHeaderComponent,
948
900
  CoreFormComponent,
949
901
  TranslatePipe,
950
- ], template: "<div class=\"live-form-container\" [hotKeys]=\"['F3', 'F6', 'Escape']\">\r\n\r\n @if ($normalMode()) {\r\n <div class=\"form-wrapper live-form\" [ngStyle]=\"{\r\n width: !!coreFormDesignService.$afInstance().width ? coreFormDesignService.$afInstance().width + 'px' : 'unset'\r\n }\">\r\n <div class=\"live-form-header\">\r\n <core-page-header [title]=\"coreFormDesignService.$afInstance().captionCode | translate : lang\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n\r\n <core-form\r\n [inputSections]=\"$inputSections()\"\r\n [customFormButtonItems]=\"$customButtons()!\"\r\n [forceCreateNewForm]=\"true\"\r\n [mode$]=\"mode$\"\r\n [hideButtons]=\"$previewMode()\"\r\n [hideCalculatedSection]=\"true\"\r\n [hideDevSector]=\"true\"\r\n [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [buttonGroupTemplateRef]=\"buttonGroupTemplateRef\"\r\n [checkError$]=\"checkError$\"\r\n (onSubmit)=\"onLiveSubmit($event)\"\r\n (onFormCreated)=\"onLiveFormCreated($event)\"\r\n (onCancal)=\"onClose()\"\r\n />\r\n\r\n @if ($previewMode()) {\r\n <div class=\"show-routing-wrapper\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"toggleShowRouting()\">\r\n {{ $showLiveRouting() ? 'Hide Routing' : 'Show Routing' }}\r\n </button>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n <div class=\"routing-preview-wrapper\" [class.visible]=\"$showLiveRouting()\">\r\n @if ($showLiveRouting()) {\r\n <routing-preview-panel />\r\n }\r\n </div>\r\n\r\n\r\n } @else {\r\n <div class=\"modal-container\">\r\n <div class=\"modal-content-root no-padding\">\r\n\r\n <div class=\"form-wrapper live-form\" [class.d-none]=\"$showLiveRouting()\" [ngStyle]=\"{\r\n width: !!coreFormDesignService.$afInstance().width ? coreFormDesignService.$afInstance().width + 'px' : 'unset'\r\n }\">\r\n\r\n <div class=\"live-form-header\">\r\n <core-page-header [title]=\"coreFormDesignService.$afInstance().captionCode | translate : lang\" [hideButtonGroup]=\"true\" />\r\n <div class=\"preview-close-icon\" (click)=\"onClose()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <core-form\r\n [inputSections]=\"$inputSections()\"\r\n [customFormButtonItems]=\"$customButtons()!\"\r\n [forceCreateNewForm]=\"true\"\r\n [hideCalculatedSection]=\"true\"\r\n [mode$]=\"mode$\"\r\n [hideButtons]=\"$previewMode()\"\r\n [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [buttonGroupTemplateRef]=\"buttonGroupTemplateRef\"\r\n [hideDevSector]=\"false\"\r\n [checkError$]=\"checkError$\"\r\n (onSubmit)=\"onLiveSubmit($event)\"\r\n (onFormCreated)=\"onLiveFormCreated($event)\"\r\n (onCancal)=\"onClose()\"\r\n />\r\n\r\n <div class=\"submition-wrapper\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"toggleShowRouting()\">\r\n {{ $showLiveRouting() ? 'Hide Routing' : 'Show Routing' }}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"initialSubmit()\">\r\n Submit \r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"routing-preview-wrapper\" [class.visible]=\"$showLiveRouting()\">\r\n @if ($showLiveRouting()) {\r\n <div class=\"h50\"></div>\r\n <routing-preview-panel [$minWidth]=\"coreFormDesignService.$afInstance().width\"/>\r\n <div class=\"h50\"></div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n <ng-template #bottomTemplateRef>\r\n <!-- <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $inputSectionsJson() }}</pre> -->\r\n <!-- @if (isDevMode) {\r\n <p class=\"dev-hint\">F3/ESC: Show/Hide afInstance | F6/ESC: Show/Hide Workflow</p>\r\n } -->\r\n @if ($showAfInstanceJson()) {\r\n <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $afInstanceJson() }}</pre>\r\n }\r\n @if ($showWfWorkflowJson()) {\r\n <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $wfWorkflowJson() }}</pre>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #buttonGroupTemplateRef>\r\n <div class=\"button-group\">\r\n <div class=\"button-group-left\"></div>\r\n <div class=\"button-group-right\">\r\n @if ($reactMode()) {\r\n @if (true) {\r\n <button type=\"button\" class=\"btn btn-secondary\">Cancel</button> \r\n }\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"react('REJECTED')\">Reject</button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"react('APPROVED')\">Approve</button>\r\n } @else {\r\n <button type=\"button\" class=\"btn btn-secondary\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary\">Send Request</button>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n</div>", styles: [".live-form-container .modal-container{overflow-y:auto!important;box-sizing:border-box}.live-form-container .form-wrapper.live-form{padding-top:0;padding-bottom:15px;background-color:#fff;position:relative}.live-form-container .form-wrapper.live-form .live-form-header{padding:0 15px}.live-form-container .form-wrapper.live-form .live-form-header .preview-close-icon{position:absolute;right:7px;top:6px;z-index:2;color:gray;cursor:pointer}.live-form-container .form-wrapper.live-form .live-form-header .preview-close-icon i{font-size:18px}.live-form-container .form-wrapper.live-form .submition-wrapper{display:flex;align-items:center;justify-content:flex-end;padding:0 24px;font-size:13px}.live-form-container .form-wrapper.live-form .submition-wrapper button{border-radius:0;font-size:13px}.live-form-container .form-wrapper.live-form .submition-wrapper button:not(:last-child){margin-right:8px}.live-form-container .form-wrapper.live-form .show-routing-wrapper{padding:15px;display:flex;align-items:center;justify-content:flex-end}.live-form-container .form-wrapper.live-form .show-routing-wrapper input{width:120px}.live-form-container .modal-content-root{padding:0;overflow-y:visible;background-color:transparent!important;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.live-form-container pre{background-color:#fff;color:#333;padding:1rem 1.5rem;border-radius:10px;box-shadow:0 2px 6px #00000014;font-family:Fira Code,monospace;font-size:.85rem;word-break:keep-all;overflow-x:auto;line-height:1.5;max-height:500px;overflow-y:auto;margin:0}.live-form-container .dev-hint{font-size:12px;color:#888;background-color:#f9f9f9;padding:6px 12px;margin:8px 0;border-left:4px solid #ccc}.live-form-container .h50{height:50px}.live-form-container .routing-preview-wrapper{overflow:hidden;max-height:0;opacity:0;transform:translateY(-10px);transition:max-height .4s ease-out,opacity .4s ease-out,transform .4s ease-out}.live-form-container .routing-preview-wrapper.visible{max-height:800px;overflow:visible;opacity:1;transform:translateY(0)}.live-form-container .show-routing-wrapper button{height:35px;font-size:13px;border-radius:0;color:#fff}.live-form-container .hidden-requester-selector{position:absolute;width:0;height:0;top:-200px;left:-200px;overflow:visible}.live-form-container .button-group{padding:15px;display:flex;align-items:center;justify-content:flex-end}.live-form-container .button-group button{height:35px;border-radius:0;font-size:13px;margin:0 7.5px;width:120px}.live-form-container .button-group button:last-child{margin-right:0}\n"] }]
902
+ ], template: "<div class=\"live-form-container\" [hotKeys]=\"['F3', 'F6', 'Escape']\">\r\n\r\n @if ($normalMode()) {\r\n <div class=\"form-wrapper live-form\" [ngStyle]=\"{\r\n width: !!coreFormDesignService.$afInstance().width ? coreFormDesignService.$afInstance().width + 'px' : 'unset'\r\n }\">\r\n <div class=\"live-form-header\">\r\n <core-page-header [title]=\"coreFormDesignService.$afInstance().captionCode | translate : lang\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n\r\n <core-form\r\n [inputSections]=\"$effectiveSections()\"\r\n [customFormButtonItems]=\"$customButtons()!\"\r\n [forceCreateNewForm]=\"true\"\r\n [mode$]=\"mode$\"\r\n [hideButtons]=\"$previewMode()\"\r\n [hideCalculatedSection]=\"true\"\r\n [hideDevSector]=\"true\"\r\n [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [buttonGroupTemplateRef]=\"buttonGroupTemplateRef\"\r\n [checkError$]=\"checkError$\"\r\n (onSubmit)=\"onLiveSubmit($event)\"\r\n (onFormCreated)=\"onLiveFormCreated($event)\"\r\n (onCancal)=\"onClose()\"\r\n />\r\n\r\n @if ($previewMode()) {\r\n <div class=\"show-routing-wrapper\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"toggleShowRouting()\">\r\n {{ $showLiveRouting() ? 'Hide Routing' : 'Show Routing' }}\r\n </button>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n <div class=\"routing-preview-wrapper\" [class.visible]=\"$showLiveRouting()\">\r\n @if ($showLiveRouting()) {\r\n <routing-preview-panel />\r\n }\r\n </div>\r\n\r\n\r\n } @else {\r\n <div class=\"modal-container\">\r\n <div class=\"modal-content-root no-padding\">\r\n\r\n <div class=\"form-wrapper live-form\" [class.d-none]=\"$showLiveRouting()\" [ngStyle]=\"{\r\n width: !!coreFormDesignService.$afInstance().width ? coreFormDesignService.$afInstance().width + 'px' : 'unset'\r\n }\">\r\n\r\n <div class=\"live-form-header\">\r\n <core-page-header [title]=\"coreFormDesignService.$afInstance().captionCode | translate : lang\" [hideButtonGroup]=\"true\" />\r\n <div class=\"preview-close-icon\" (click)=\"onClose()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n </div>\r\n\r\n <core-form\r\n [inputSections]=\"$effectiveSections()\"\r\n [customFormButtonItems]=\"$customButtons()!\"\r\n [forceCreateNewForm]=\"true\"\r\n [hideCalculatedSection]=\"true\"\r\n [mode$]=\"mode$\"\r\n [hideButtons]=\"$previewMode()\"\r\n [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [buttonGroupTemplateRef]=\"buttonGroupTemplateRef\"\r\n [hideDevSector]=\"false\"\r\n [checkError$]=\"checkError$\"\r\n (onSubmit)=\"onLiveSubmit($event)\"\r\n (onFormCreated)=\"onLiveFormCreated($event)\"\r\n (onCancal)=\"onClose()\"\r\n />\r\n\r\n <div class=\"submition-wrapper\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"toggleShowRouting()\">\r\n {{ $showLiveRouting() ? 'Hide Routing' : 'Show Routing' }}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"initialSubmit()\">\r\n Submit \r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"routing-preview-wrapper\" [class.visible]=\"$showLiveRouting()\">\r\n @if ($showLiveRouting()) {\r\n <div class=\"h50\"></div>\r\n <routing-preview-panel [$minWidth]=\"coreFormDesignService.$afInstance().width\"/>\r\n <div class=\"h50\"></div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n <ng-template #bottomTemplateRef>\r\n <!-- <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $inputSectionsJson() }}</pre> -->\r\n <!-- @if (isDevMode) {\r\n <p class=\"dev-hint\">F3/ESC: Show/Hide afInstance | F6/ESC: Show/Hide Workflow</p>\r\n } -->\r\n @if ($showAfInstanceJson()) {\r\n <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $afInstanceJson() }}</pre>\r\n }\r\n @if ($showWfWorkflowJson()) {\r\n <pre [ngStyle]=\"{ maxWidth: !!$afInstance()?.width ? $afInstance()?.width! + 'px' : 'unset'}\">{{ $wfWorkflowJson() }}</pre>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #buttonGroupTemplateRef>\r\n <div class=\"button-group\">\r\n <div class=\"button-group-left\"></div>\r\n <div class=\"button-group-right\">\r\n @if ($reactMode()) {\r\n @if (true) {\r\n <button type=\"button\" class=\"btn btn-secondary\">Cancel</button> \r\n }\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"react('REJECTED')\">Reject</button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"react('APPROVED')\">Approve</button>\r\n } @else {\r\n <button type=\"button\" class=\"btn btn-secondary\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary\">Send Request</button>\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n</div>", styles: [".live-form-container .modal-container{overflow-y:auto!important;box-sizing:border-box}.live-form-container .form-wrapper.live-form{padding-top:0;padding-bottom:15px;background-color:#fff;position:relative}.live-form-container .form-wrapper.live-form .live-form-header{padding:0 15px}.live-form-container .form-wrapper.live-form .live-form-header .preview-close-icon{position:absolute;right:7px;top:6px;z-index:2;color:gray;cursor:pointer}.live-form-container .form-wrapper.live-form .live-form-header .preview-close-icon i{font-size:18px}.live-form-container .form-wrapper.live-form .submition-wrapper{display:flex;align-items:center;justify-content:flex-end;padding:0 24px;font-size:13px}.live-form-container .form-wrapper.live-form .submition-wrapper button{border-radius:0;font-size:13px}.live-form-container .form-wrapper.live-form .submition-wrapper button:not(:last-child){margin-right:8px}.live-form-container .form-wrapper.live-form .show-routing-wrapper{padding:15px;display:flex;align-items:center;justify-content:flex-end}.live-form-container .form-wrapper.live-form .show-routing-wrapper input{width:120px}.live-form-container .modal-content-root{padding:0;overflow-y:visible;background-color:transparent!important;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.live-form-container pre{background-color:#fff;color:#333;padding:1rem 1.5rem;border-radius:10px;box-shadow:0 2px 6px #00000014;font-family:Fira Code,monospace;font-size:.85rem;word-break:keep-all;overflow-x:auto;line-height:1.5;max-height:500px;overflow-y:auto;margin:0}.live-form-container .dev-hint{font-size:12px;color:#888;background-color:#f9f9f9;padding:6px 12px;margin:8px 0;border-left:4px solid #ccc}.live-form-container .h50{height:50px}.live-form-container .routing-preview-wrapper{overflow:hidden;max-height:0;opacity:0;transform:translateY(-10px);transition:max-height .4s ease-out,opacity .4s ease-out,transform .4s ease-out}.live-form-container .routing-preview-wrapper.visible{max-height:800px;overflow:visible;opacity:1;transform:translateY(0)}.live-form-container .show-routing-wrapper button{height:35px;font-size:13px;border-radius:0;color:#fff}.live-form-container .hidden-requester-selector{position:absolute;width:0;height:0;top:-200px;left:-200px;overflow:visible}.live-form-container .button-group{padding:15px;display:flex;align-items:center;justify-content:flex-end}.live-form-container .button-group button{height:35px;border-radius:0;font-size:13px;margin:0 7.5px;width:120px}.live-form-container .button-group button:last-child{margin-right:0}\n"] }]
951
903
  }], ctorParameters: () => [{ type: MultiLanguageService }, { type: CoreFormService }] });
952
904
 
953
905
  var liveForm_component = /*#__PURE__*/Object.freeze({
@@ -956,4 +908,4 @@ var liveForm_component = /*#__PURE__*/Object.freeze({
956
908
  });
957
909
 
958
910
  export { LiveFormComponent as L, RoutingPreviewPanelComponent as R, liveForm_component as l };
959
- //# sourceMappingURL=ngx-histaff-alpha-live-form.component-BEq38Xps.mjs.map
911
+ //# sourceMappingURL=ngx-histaff-alpha-live-form.component-LdFysTvc.mjs.map