ngx-histaff-alpha 6.2.7 → 6.2.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 (53) hide show
  1. package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-NiEY3Lwt.mjs → ngx-histaff-alpha-ai-hint-for-table.component-DBElWGVg.mjs} +2 -2
  2. package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-NiEY3Lwt.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-DBElWGVg.mjs.map} +1 -1
  3. package/fesm2022/{ngx-histaff-alpha-core-form-design.component-DG6DwsTg.mjs → ngx-histaff-alpha-core-form-design.component-_wzTnIee.mjs} +5 -5
  4. package/fesm2022/{ngx-histaff-alpha-core-form-design.component-DG6DwsTg.mjs.map → ngx-histaff-alpha-core-form-design.component-_wzTnIee.mjs.map} +1 -1
  5. package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-DquamtEW.mjs → ngx-histaff-alpha-core-template-editor.component-fXB6492V.mjs} +2 -2
  6. package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-DquamtEW.mjs.map → ngx-histaff-alpha-core-template-editor.component-fXB6492V.mjs.map} +1 -1
  7. package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-ar9nKhCH.mjs → ngx-histaff-alpha-core-toast-loading.component-DSLcUCbz.mjs} +2 -2
  8. package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-ar9nKhCH.mjs.map → ngx-histaff-alpha-core-toast-loading.component-DSLcUCbz.mjs.map} +1 -1
  9. package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-DMCnXtOv.mjs → ngx-histaff-alpha-core-workflow-consume.component-CSsLmLR2.mjs} +4 -4
  10. package/fesm2022/ngx-histaff-alpha-core-workflow-consume.component-CSsLmLR2.mjs.map +1 -0
  11. package/fesm2022/{ngx-histaff-alpha-db-settings.component-B-OxVg4F.mjs → ngx-histaff-alpha-db-settings.component-BpIse2rU.mjs} +5 -5
  12. package/fesm2022/{ngx-histaff-alpha-db-settings.component-B-OxVg4F.mjs.map → ngx-histaff-alpha-db-settings.component-BpIse2rU.mjs.map} +1 -1
  13. package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-BqUnpNJA.mjs → ngx-histaff-alpha-design-wrapper.component-n5ahb0HO.mjs} +7 -7
  14. package/fesm2022/ngx-histaff-alpha-design-wrapper.component-n5ahb0HO.mjs.map +1 -0
  15. package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-CgqbmHd5.mjs → ngx-histaff-alpha-design-wrapper.route-BQUP7aD3.mjs} +5 -5
  16. package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-CgqbmHd5.mjs.map → ngx-histaff-alpha-design-wrapper.route-BQUP7aD3.mjs.map} +1 -1
  17. package/fesm2022/{ngx-histaff-alpha-form-array-props.component-CFhQQ9LF.mjs → ngx-histaff-alpha-form-array-props.component-dnygmuIW.mjs} +3 -3
  18. package/fesm2022/{ngx-histaff-alpha-form-array-props.component-CFhQQ9LF.mjs.map → ngx-histaff-alpha-form-array-props.component-dnygmuIW.mjs.map} +1 -1
  19. package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-DPS-44a3.mjs → ngx-histaff-alpha-hrm-schema.component-Bgcd9oqO.mjs} +2 -2
  20. package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-DPS-44a3.mjs.map → ngx-histaff-alpha-hrm-schema.component-Bgcd9oqO.mjs.map} +1 -1
  21. package/fesm2022/{ngx-histaff-alpha-live-form.component-C_3pE7eQ.mjs → ngx-histaff-alpha-live-form.component-DCmSKu9J.mjs} +2 -2
  22. package/fesm2022/ngx-histaff-alpha-live-form.component-DCmSKu9J.mjs.map +1 -0
  23. package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-DLhfwWOV.mjs → ngx-histaff-alpha-ngx-histaff-alpha-DsL5Ex6R.mjs} +386 -106
  24. package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-DsL5Ex6R.mjs.map +1 -0
  25. package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BBC0agsQ.mjs → ngx-histaff-alpha-simple-chat.component-CORJcSXP.mjs} +2 -2
  26. package/fesm2022/{ngx-histaff-alpha-simple-chat.component-BBC0agsQ.mjs.map → ngx-histaff-alpha-simple-chat.component-CORJcSXP.mjs.map} +1 -1
  27. package/fesm2022/{ngx-histaff-alpha-template-list.component-Dg9i9xfk.mjs → ngx-histaff-alpha-template-list.component-DhHh7uk3.mjs} +2 -2
  28. package/fesm2022/{ngx-histaff-alpha-template-list.component-Dg9i9xfk.mjs.map → ngx-histaff-alpha-template-list.component-DhHh7uk3.mjs.map} +1 -1
  29. package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-CYpHkiXM.mjs → ngx-histaff-alpha-tracker-studio.component-DxwHNKW5.mjs} +2 -2
  30. package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-CYpHkiXM.mjs.map → ngx-histaff-alpha-tracker-studio.component-DxwHNKW5.mjs.map} +1 -1
  31. package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-DPQm1Xzc.mjs → ngx-histaff-alpha-wf-form-assign.component-CTwMGHCL.mjs} +2 -2
  32. package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-DPQm1Xzc.mjs.map → ngx-histaff-alpha-wf-form-assign.component-CTwMGHCL.mjs.map} +1 -1
  33. package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-oEr0_M3b.mjs → ngx-histaff-alpha-wf-global-config.component-C0FY6YVB.mjs} +2 -2
  34. package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-oEr0_M3b.mjs.map → ngx-histaff-alpha-wf-global-config.component-C0FY6YVB.mjs.map} +1 -1
  35. package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-BGc1pFqY.mjs → ngx-histaff-alpha-wf-instance-status.component-BXGA_qii.mjs} +17 -6
  36. package/fesm2022/ngx-histaff-alpha-wf-instance-status.component-BXGA_qii.mjs.map +1 -0
  37. package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-DvluEd1O.mjs → ngx-histaff-alpha-wf-instance-step-react.component-C1lVDinr.mjs} +13 -4
  38. package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-C1lVDinr.mjs.map +1 -0
  39. package/fesm2022/ngx-histaff-alpha.mjs +1 -1
  40. package/lib/app/interfaces/IFormatedResponse.d.ts +2 -1
  41. package/lib/app/libraries/core-form-design/core-form-design.component.d.ts +1 -1
  42. package/lib/app/libraries/core-form-design/core-form-group-editor.component.d.ts +1 -1
  43. package/lib/app/libraries/core-workflow-builder/core-workflow-list/core-workflow-list.component.d.ts +12 -1
  44. package/lib/app/libraries/core-workflow-builder/core-workflow.service.d.ts +6 -2
  45. package/lib/app/services/app.service.d.ts +19 -2
  46. package/lib/app/services/common-http-request.service.d.ts +3 -0
  47. package/package.json +2 -2
  48. package/fesm2022/ngx-histaff-alpha-core-workflow-consume.component-DMCnXtOv.mjs.map +0 -1
  49. package/fesm2022/ngx-histaff-alpha-design-wrapper.component-BqUnpNJA.mjs.map +0 -1
  50. package/fesm2022/ngx-histaff-alpha-live-form.component-C_3pE7eQ.mjs.map +0 -1
  51. package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-DLhfwWOV.mjs.map +0 -1
  52. package/fesm2022/ngx-histaff-alpha-wf-instance-status.component-BGc1pFqY.mjs.map +0 -1
  53. package/fesm2022/ngx-histaff-alpha-wf-instance-step-react.component-DvluEd1O.mjs.map +0 -1
@@ -1,14 +1,31 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { CommonHttpRequestService } from './common-http-request.service';
3
3
  import { ClientService } from './client.service';
4
+ import { IFormatedResponse } from '../interfaces/IFormatedResponse';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class AppService {
6
7
  private commonHttpRequestService;
7
8
  private clientService;
9
+ private currentController?;
8
10
  constructor(commonHttpRequestService: CommonHttpRequestService, clientService: ClientService);
9
- get(url: string, cacheRequest?: boolean, signal?: AbortSignal | null): Observable<any>;
11
+ /** 🧩 Cooperative cancellation (AbortController ~ CancellationTokenSource) */
12
+ private createSignal;
13
+ /** 🛑 Public method to cancel all pending requests */
14
+ cancelPendingRequests(): void;
15
+ get(url: string, cacheRequest?: boolean, signal?: AbortSignal | null): Observable<{
16
+ ok: true;
17
+ status: 200;
18
+ body: IFormatedResponse;
19
+ }>;
10
20
  getSkipInterceptor(url: string, cacheRequest?: boolean): Observable<any>;
11
- post(url: string, payload: any, signal?: AbortSignal | null): Observable<any>;
21
+ /** POST with normalized IFormatedResponse wrapper */
22
+ post(url: string, payload: any, signal?: AbortSignal | null): Observable<{
23
+ ok: true;
24
+ status: 200;
25
+ body: IFormatedResponse;
26
+ }>;
27
+ /** 🧱 Error normalization (so frontend always gets consistent shape) */
28
+ private normalizeError;
12
29
  postSkipInterceptor(url: string, payload: any): Observable<any>;
13
30
  getFullUrl(url: string): Observable<any>;
14
31
  postFullUrl(url: string, payload: any): Observable<any>;
@@ -15,6 +15,9 @@ export declare class CommonHttpRequestService {
15
15
  makePostRequestReponseBlobSkipInterceptor(name: string, relativeApiEndPoint: string, payload: any): Observable<any>;
16
16
  makeStatisticPostRequest(name: string, relativeApiEndPoint: string, payload: any): Observable<any>;
17
17
  makeStatisticGetRequest(name: string, relativeApiEndPoint: string, cacheRequest?: boolean): Observable<any>;
18
+ private normalizeHttpResponse;
19
+ private normalizeHttpError;
20
+ private extractErrorMessage;
18
21
  static ɵfac: i0.ɵɵFactoryDeclaration<CommonHttpRequestService, never>;
19
22
  static ɵprov: i0.ɵɵInjectableDeclaration<CommonHttpRequestService>;
20
23
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ngx-histaff-alpha",
3
- "version": "6.2.7",
4
- "description": "6.2.7: Add system-injected tokens to email editor",
3
+ "version": "6.2.9",
4
+ "description": "6.2.9: fix(workflow-list): introduce mergedState$",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^19.0.1",
7
7
  "@angular/core": "^19.0.1"
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngx-histaff-alpha-core-workflow-consume.component-DMCnXtOv.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/core-workflow-consume/core-workflow-consume.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/core-workflow-consume/core-workflow-consume.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { CoreWorkflowListComponent } from '../core-workflow-list/core-workflow-list.component'\r\nimport { RouterOutlet } from '@angular/router';\r\nimport { DragReorderDirective } from '../../../directives/drag-reorder.directive';\r\nimport { CorePageHeaderComponent } from '../../core-page-header/core-page-header/core-page-header.component';\r\nimport { TooltipDirective } from '../../tooltip/tooltip.directive';\r\nimport { BehaviorSubject, buffer, catchError, debounceTime, distinctUntilChanged, filter, of, switchMap } from 'rxjs';\r\nimport { IWfWorkflow } from '../interfaces/IWfWorkflow';\r\nimport { FullscreenModalLoaderComponent } from '../../fullscreen-modal-loader/fullscreen-modal-loader.component';\r\n\r\n@Component({\r\n selector: 'core-workflow-consume',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n RouterOutlet,\r\n CorePageHeaderComponent,\r\n TooltipDirective,\r\n DragReorderDirective,\r\n FullscreenModalLoaderComponent\r\n ],\r\n templateUrl: './core-workflow-consume.component.html',\r\n styleUrls: [\r\n './core-workflow-consume.component.scss'\r\n ]\r\n})\r\nexport class CoreWorkflowConsumeComponent extends CoreWorkflowListComponent {\r\n\r\n sendRequest(flow: IWfWorkflow): void {\r\n\r\n if (!!flow.afNormalMode) {\r\n // Fullscreen route\r\n this.router.navigate(\r\n ['/root/workflow/workflow-consume', flow.id]\r\n );\r\n } else {\r\n // Modal outlet route\r\n this.router.navigate(\r\n [\r\n '/root/workflow/workflow-consume',\r\n { outlets: { workflowConsume: [flow.id] } }\r\n ]\r\n );\r\n }\r\n\r\n }\r\n\r\n override ngAfterViewInit(): void {\r\n\r\n this.doublePointDown?.unsubscribe();\r\n\r\n requestAnimationFrame(() => {\r\n this.coreWorkflowService.refresh('/api/WfWorkflowGroup/GetAllAvailableWithWorkflows', '');\r\n\r\n this.subscriptions.push(\r\n this.pointerdown$.pipe(\r\n buffer(this.pointerdown$.pipe(debounceTime(500))),\r\n filter(clicks => clicks.length >= 2)\r\n ).subscribe(() => {\r\n if (!!this.$activeWorkflow()) {\r\n this.sendRequest(this.$activeWorkflow()!)\r\n }\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.orderChanges$\r\n .pipe(\r\n debounceTime(800), // wait 800ms after last change\r\n distinctUntilChanged((a, b) =>\r\n JSON.stringify(a.map(x => ({ id: x.id, orderNum: x.orderNum }))) ===\r\n JSON.stringify(b.map(x => ({ id: x.id, orderNum: x.orderNum })))\r\n ),\r\n switchMap(newOrder => this.coreWorkflowService.updateGroupOrder(newOrder)),\r\n catchError(err => {\r\n console.error('🚨 Backend update failed:', err);\r\n return of({ ok: false, status: 500, body: { statusCode: 500 } });\r\n })\r\n )\r\n .subscribe(x => {\r\n if (x.ok && x.status === 200 && x.body?.statusCode === 200) {\r\n // no need to send any UI alert \r\n }\r\n })\r\n )\r\n\r\n this.subscriptions.push(\r\n this.searchTearm$.pipe(\r\n debounceTime(500),\r\n distinctUntilChanged(),\r\n ).subscribe(searchTerm => {\r\n this.coreWorkflowService.refresh('/api/WfWorkflowGroup/GetAllAvailableWithWorkflows', searchTerm);\r\n })\r\n )\r\n })\r\n }\r\n\r\n}\r\n","<div class=\"core-workflow-list-container\">\r\n\r\n <core-page-header title=\"Workflow Use\" [hideButtonGroup]=\"true\"></core-page-header>\r\n <div class=\"container-fluid\">\r\n <div class=\"row gx-5 gy-5\" [class.sort-mode]=\"$sortMode()\">\r\n <div class=\"col-md-12 no-padding\">\r\n <div class=\"WorkflowList_operations d-flex d-flex-between\">\r\n <div class=\"WorkflowList_operationsLeft\">\r\n <input type=\"text\" placeholder=\"Search\" class=\"form-control\" [class.d-none]=\"$sortMode()\"\r\n (input)=\"onSearchChange($event)\"\r\n >\r\n </div>\r\n <div class=\"WorkflowList_operationsRight\">\r\n <button class=\"btn btn-secondary\" (click)=\"togglerSortMode()\">{{ $sortMode() ? 'Expand' : 'Sort'\r\n }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"group-list p-relative\">\r\n\r\n @for (group of coreWorkflowService.$allGroups(); track group.id) {\r\n\r\n @if ($sortMode()) {\r\n\r\n <div class=\"WorkflowGroup card sort-mode\"\r\n [attr.data-id]=\"group.id\"\r\n dragReorder\r\n (updateList)=\"onListReorderUpdate($event)\"\r\n >\r\n \r\n <div class=\"WorkflowGroup_header d-flex d-flex-between pointer\">\r\n <div class=\"WorkflowGroup_headerTitle\">\r\n {{ group?.name }}\r\n </div>\r\n \r\n <div class=\"WorkflowGroup_nameOperations d-flex d-flex-end\">\r\n \r\n <div class=\"WorkflowGroup_itemEdit pointer\">\r\n <i class=\"feather-move\"></i>\r\n </div>\r\n \r\n </div>\r\n \r\n </div>\r\n \r\n </div>\r\n\r\n } @else {\r\n\r\n <div class=\"WorkflowGroup card\">\r\n \r\n <div class=\"WorkflowGroup_header d-flex d-flex-between\">\r\n\r\n <div class=\"WorkflowGroup_headerTitle\">\r\n {{ group?.name }}\r\n </div>\r\n \r\n </div>\r\n \r\n \r\n <div class=\"Workflows\">\r\n @for (flow of group.wfWorkflows; track $index) {\r\n <div class=\"Workflow pointer\" (pointerdown)=\"onPointerdown(flow, group)\">\r\n <div class=\"Workflow_code\">\r\n\r\n <span [appTooltip]=\"flow.description\" [position]=\"'above'\" [showAnyway]=\"true\">{{ flow.name\r\n }}</span>\r\n </div>\r\n <div class=\"Workflow_operationsRight\">\r\n <div class=\"pointer\" (click)=\"sendRequest(flow)\"\r\n [appTooltip]=\"'Send request'\">\r\n <i class=\"feather-mail\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n \r\n </div>\r\n\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <router-outlet name=\"workflowConsume\"></router-outlet>\r\n\r\n @if ($loading()) {\r\n <app-fullscreen-modal-loader/>\r\n }\r\n\r\n</div>"],"names":[],"mappings":"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"}