ngx-histaff-alpha 6.3.3 → 6.3.6

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 (42) hide show
  1. package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-BR9J1ppI.mjs → ngx-histaff-alpha-ai-hint-for-table.component-D_Yv-aKW.mjs} +2 -2
  2. package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-BR9J1ppI.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-D_Yv-aKW.mjs.map} +1 -1
  3. package/fesm2022/{ngx-histaff-alpha-core-form-design.component-B2d6A9bV.mjs → ngx-histaff-alpha-core-form-design.component-BDh-358_.mjs} +5 -5
  4. package/fesm2022/{ngx-histaff-alpha-core-form-design.component-B2d6A9bV.mjs.map → ngx-histaff-alpha-core-form-design.component-BDh-358_.mjs.map} +1 -1
  5. package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-Bhjfcd45.mjs → ngx-histaff-alpha-core-template-editor.component-BBWim535.mjs} +2 -2
  6. package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-Bhjfcd45.mjs.map → ngx-histaff-alpha-core-template-editor.component-BBWim535.mjs.map} +1 -1
  7. package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-K8SDzTU1.mjs → ngx-histaff-alpha-core-toast-loading.component-DxfG1JzG.mjs} +2 -2
  8. package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-K8SDzTU1.mjs.map → ngx-histaff-alpha-core-toast-loading.component-DxfG1JzG.mjs.map} +1 -1
  9. package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-CJ75TWh6.mjs → ngx-histaff-alpha-core-workflow-consume.component-CvGswHbB.mjs} +2 -2
  10. package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-CJ75TWh6.mjs.map → ngx-histaff-alpha-core-workflow-consume.component-CvGswHbB.mjs.map} +1 -1
  11. package/fesm2022/{ngx-histaff-alpha-db-settings.component-CGvH7ERp.mjs → ngx-histaff-alpha-db-settings.component-CqNPzdzL.mjs} +5 -5
  12. package/fesm2022/{ngx-histaff-alpha-db-settings.component-CGvH7ERp.mjs.map → ngx-histaff-alpha-db-settings.component-CqNPzdzL.mjs.map} +1 -1
  13. package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-CaUPegQM.mjs → ngx-histaff-alpha-design-wrapper.component-CVsgjU2z.mjs} +5 -5
  14. package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-CaUPegQM.mjs.map → ngx-histaff-alpha-design-wrapper.component-CVsgjU2z.mjs.map} +1 -1
  15. package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-B7szOpgS.mjs → ngx-histaff-alpha-design-wrapper.route-B_EjwkZd.mjs} +5 -5
  16. package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-B7szOpgS.mjs.map → ngx-histaff-alpha-design-wrapper.route-B_EjwkZd.mjs.map} +1 -1
  17. package/fesm2022/{ngx-histaff-alpha-form-array-props.component-5_yxWAtj.mjs → ngx-histaff-alpha-form-array-props.component-BEKVB15X.mjs} +3 -3
  18. package/fesm2022/{ngx-histaff-alpha-form-array-props.component-5_yxWAtj.mjs.map → ngx-histaff-alpha-form-array-props.component-BEKVB15X.mjs.map} +1 -1
  19. package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-CPLwUM7e.mjs → ngx-histaff-alpha-hrm-schema.component-BEt_LyNb.mjs} +2 -2
  20. package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-CPLwUM7e.mjs.map → ngx-histaff-alpha-hrm-schema.component-BEt_LyNb.mjs.map} +1 -1
  21. package/fesm2022/{ngx-histaff-alpha-live-form.component-DhA7j-wa.mjs → ngx-histaff-alpha-live-form.component-FW_M5cI5.mjs} +2 -2
  22. package/fesm2022/{ngx-histaff-alpha-live-form.component-DhA7j-wa.mjs.map → ngx-histaff-alpha-live-form.component-FW_M5cI5.mjs.map} +1 -1
  23. package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-CKFFDZWG.mjs → ngx-histaff-alpha-ngx-histaff-alpha-YPc6xct6.mjs} +399 -68
  24. package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-YPc6xct6.mjs.map +1 -0
  25. package/fesm2022/{ngx-histaff-alpha-simple-chat.component-CWIrbORH.mjs → ngx-histaff-alpha-simple-chat.component-pL0ykKNj.mjs} +2 -2
  26. package/fesm2022/{ngx-histaff-alpha-simple-chat.component-CWIrbORH.mjs.map → ngx-histaff-alpha-simple-chat.component-pL0ykKNj.mjs.map} +1 -1
  27. package/fesm2022/{ngx-histaff-alpha-template-list.component-B9YUgOtF.mjs → ngx-histaff-alpha-template-list.component-36QflRwY.mjs} +2 -2
  28. package/fesm2022/{ngx-histaff-alpha-template-list.component-B9YUgOtF.mjs.map → ngx-histaff-alpha-template-list.component-36QflRwY.mjs.map} +1 -1
  29. package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-BRmiNP0D.mjs → ngx-histaff-alpha-tracker-studio.component-DlAdz6Wq.mjs} +2 -2
  30. package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-BRmiNP0D.mjs.map → ngx-histaff-alpha-tracker-studio.component-DlAdz6Wq.mjs.map} +1 -1
  31. package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-CZ2JRZOo.mjs → ngx-histaff-alpha-wf-form-assign.component-V9exT_fm.mjs} +2 -2
  32. package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-CZ2JRZOo.mjs.map → ngx-histaff-alpha-wf-form-assign.component-V9exT_fm.mjs.map} +1 -1
  33. package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-DHgwHR8d.mjs → ngx-histaff-alpha-wf-global-config.component-BuCfL80F.mjs} +2 -2
  34. package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-DHgwHR8d.mjs.map → ngx-histaff-alpha-wf-global-config.component-BuCfL80F.mjs.map} +1 -1
  35. package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-B_2PEQ8y.mjs → ngx-histaff-alpha-wf-instance-status.component-DJuPBwqR.mjs} +2 -2
  36. package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-B_2PEQ8y.mjs.map → ngx-histaff-alpha-wf-instance-status.component-DJuPBwqR.mjs.map} +1 -1
  37. package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-B_f7Wwyc.mjs → ngx-histaff-alpha-wf-instance-step-react.component-OAdGYvAN.mjs} +3 -3
  38. package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-B_f7Wwyc.mjs.map → ngx-histaff-alpha-wf-instance-step-react.component-OAdGYvAN.mjs.map} +1 -1
  39. package/fesm2022/ngx-histaff-alpha.mjs +1 -1
  40. package/lib/app/libraries/core-orgchartflex/core-orgchartflex/core-orgchartflex.component.d.ts +4 -1
  41. package/package.json +2 -2
  42. package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-CKFFDZWG.mjs.map +0 -1
@@ -18169,6 +18169,11 @@ const STICKER_COLOR_SCHEMA = [
18169
18169
  backgroundColor: '#FFEAEA',
18170
18170
  color: '#EF2B58'
18171
18171
  },
18172
+ {
18173
+ code: 'Từ chối',
18174
+ backgroundColor: '#FFEAEA',
18175
+ color: '#EF2B58'
18176
+ },
18172
18177
  {
18173
18178
  code: 'ACTIVE',
18174
18179
  backgroundColor: '#E2F2FF',
@@ -31569,7 +31574,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
31569
31574
  const hrmSchemaRoutes = [
31570
31575
  {
31571
31576
  path: '',
31572
- loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-CPLwUM7e.mjs').then(m => m.HrmSchemaComponent)
31577
+ loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-BEt_LyNb.mjs').then(m => m.HrmSchemaComponent)
31573
31578
  }
31574
31579
  ];
31575
31580
 
@@ -33742,7 +33747,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
33742
33747
  const simpleChatRoutes = [
33743
33748
  {
33744
33749
  path: '',
33745
- loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-CWIrbORH.mjs').then(m => m.SimpleChatComponent)
33750
+ loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-pL0ykKNj.mjs').then(m => m.SimpleChatComponent)
33746
33751
  }
33747
33752
  ];
33748
33753
 
@@ -38021,11 +38026,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
38021
38026
  const coreDocGenRoutes = [
38022
38027
  {
38023
38028
  path: 'template-list',
38024
- loadComponent: () => import('./ngx-histaff-alpha-template-list.component-B9YUgOtF.mjs').then(m => m.TemplateListComponent),
38029
+ loadComponent: () => import('./ngx-histaff-alpha-template-list.component-36QflRwY.mjs').then(m => m.TemplateListComponent),
38025
38030
  },
38026
38031
  {
38027
38032
  path: ":id",
38028
- loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-Bhjfcd45.mjs').then(m => m.CoreTemplateEditorComponent),
38033
+ loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-BBWim535.mjs').then(m => m.CoreTemplateEditorComponent),
38029
38034
  canDeactivate: [CanDeactivateGuard]
38030
38035
  },
38031
38036
  {
@@ -38054,7 +38059,7 @@ const coreFormDesignRoutes = [
38054
38059
  },
38055
38060
  {
38056
38061
  path: ':id',
38057
- loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-B2d6A9bV.mjs').then(function (n) { return n.c; }).then(m => m.CoreFormDesignComponent)
38062
+ loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-BDh-358_.mjs').then(function (n) { return n.c; }).then(m => m.CoreFormDesignComponent)
38058
38063
  }
38059
38064
  ];
38060
38065
 
@@ -38947,7 +38952,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
38947
38952
  const coreNavigationTrackerRoutes = [
38948
38953
  {
38949
38954
  path: '',
38950
- loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-BRmiNP0D.mjs').then(m => m.TrackerStudioComponent)
38955
+ loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-DlAdz6Wq.mjs').then(m => m.TrackerStudioComponent)
38951
38956
  }
38952
38957
  ];
38953
38958
 
@@ -39057,10 +39062,49 @@ class CoreOrgchartflexComponent {
39057
39062
  takeUntilDestroyed(this.destroyRef))
39058
39063
  .subscribe(async () => {
39059
39064
  this.printing$.next(true);
39060
- await this.exportOrgChartToPdf();
39065
+ //await this.exportOrgChartAtomic();
39066
+ //await this.exportOrgChartOnePage();
39067
+ //await this.exportOrgChartAutoFit();
39068
+ await this.exportOrgChartPro();
39061
39069
  this.printing$.next(false);
39062
39070
  });
39063
39071
  }
39072
+ highlightChartRect() {
39073
+ const printArea = this.$printArea()?.nativeElement;
39074
+ if (!printArea)
39075
+ return;
39076
+ // 1️⃣ Compute bounding box of all .tree nodes
39077
+ const allNodes = Array.from(printArea.querySelectorAll('.tree, .tree *'));
39078
+ const boxes = allNodes.map(n => n.getBoundingClientRect());
39079
+ const minX = Math.min(...boxes.map(b => b.left));
39080
+ const minY = Math.min(...boxes.map(b => b.top));
39081
+ const maxX = Math.max(...boxes.map(b => b.right));
39082
+ const maxY = Math.max(...boxes.map(b => b.bottom));
39083
+ const chartW = Math.ceil(maxX - minX);
39084
+ const chartH = Math.ceil(maxY - minY);
39085
+ // 2️⃣ Create a visual overlay
39086
+ const overlay = document.createElement('div');
39087
+ overlay.id = 'chart-debug-overlay';
39088
+ Object.assign(overlay.style, {
39089
+ position: 'fixed',
39090
+ left: `${minX}px`,
39091
+ top: `${minY}px`,
39092
+ width: `${chartW}px`,
39093
+ height: `${chartH}px`,
39094
+ border: '2px solid red',
39095
+ background: 'rgba(255,0,0,0.05)',
39096
+ zIndex: '999999',
39097
+ pointerEvents: 'none',
39098
+ boxShadow: '0 0 10px red',
39099
+ });
39100
+ // 3️⃣ Remove existing overlay if any, then attach new one
39101
+ document.getElementById('chart-debug-overlay')?.remove();
39102
+ document.body.appendChild(overlay);
39103
+ console.log(`🔍 Bounding Box — x:${minX}, y:${minY}, w:${chartW}, h:${chartH}`);
39104
+ }
39105
+ clearChartHighlight() {
39106
+ document.getElementById('chart-debug-overlay')?.remove();
39107
+ }
39064
39108
  toggleExpand(e) {
39065
39109
  e.tree$Expanded = !!!e.tree$Expanded;
39066
39110
  }
@@ -39088,72 +39132,359 @@ class CoreOrgchartflexComponent {
39088
39132
  style.setProperty('--children-border-color', this.$childrenBorderColor());
39089
39133
  });
39090
39134
  }
39091
- async exportOrgChartToPdf() {
39135
+ async healImagesForCanvas(printArea) {
39136
+ const imgs = Array.from(printArea.querySelectorAll('img'));
39137
+ await Promise.all(imgs.map(async (img) => {
39138
+ if (img.src.startsWith('data:'))
39139
+ return;
39140
+ try {
39141
+ const resp = await fetch(img.src, { mode: 'cors' });
39142
+ const blob = await resp.blob();
39143
+ const reader = new FileReader();
39144
+ await new Promise(res => {
39145
+ reader.onload = () => {
39146
+ img.src = reader.result;
39147
+ res();
39148
+ };
39149
+ reader.readAsDataURL(blob);
39150
+ });
39151
+ }
39152
+ catch {
39153
+ console.warn('⚠️ Skipping image due to CORS:', img.src);
39154
+ }
39155
+ }));
39156
+ }
39157
+ // async exportOrgChartAtomic(): Promise<void> {
39158
+ // const container = this.$container()?.nativeElement as HTMLElement;
39159
+ // const printArea = this.$printArea()?.nativeElement as HTMLElement;
39160
+ // if (!printArea) return;
39161
+ // // 🩺 1️⃣ Normalize zoom + disable transitions
39162
+ // const oldScale = getComputedStyle(container).getPropertyValue('--print-area-scale');
39163
+ // container.style.setProperty('--print-area-scale', '1');
39164
+ // const oldTransform = printArea.style.transform;
39165
+ // printArea.style.transform = 'none';
39166
+ // printArea.querySelectorAll('*').forEach(el => {
39167
+ // (el as HTMLElement).style.animation = 'none';
39168
+ // (el as HTMLElement).style.transition = 'none';
39169
+ // });
39170
+ // // 🧭 2️⃣ Wait for & heal all <img> elements
39171
+ // const imgs = Array.from(printArea.querySelectorAll('img')) as HTMLImageElement[];
39172
+ // await Promise.all(
39173
+ // imgs.map(img =>
39174
+ // img.complete ? Promise.resolve() : new Promise(res => (img.onload = img.onerror = res))
39175
+ // )
39176
+ // );
39177
+ // for (const img of imgs) {
39178
+ // if (img.src.startsWith('data:')) continue;
39179
+ // try {
39180
+ // const resp = await fetch(img.src, { mode: 'cors' });
39181
+ // const blob = await resp.blob();
39182
+ // const reader = new FileReader();
39183
+ // await new Promise<void>(res => {
39184
+ // reader.onload = () => {
39185
+ // img.src = reader.result as string;
39186
+ // res();
39187
+ // };
39188
+ // reader.readAsDataURL(blob);
39189
+ // });
39190
+ // } catch { /* skip broken images */ }
39191
+ // }
39192
+ // // 📐 3️⃣ Compute true bounding box (atomic crop)
39193
+ // const allNodes = Array.from(printArea.querySelectorAll('.tree, .tree *')) as HTMLElement[];
39194
+ // const boxes = allNodes.map(n => n.getBoundingClientRect());
39195
+ // const minX = Math.min(...boxes.map(b => b.left));
39196
+ // const minY = Math.min(...boxes.map(b => b.top));
39197
+ // const maxX = Math.max(...boxes.map(b => b.right));
39198
+ // const maxY = Math.max(...boxes.map(b => b.bottom));
39199
+ // const chartW = Math.ceil(maxX - minX);
39200
+ // const chartH = Math.ceil(maxY - minY);
39201
+ // // 🧩 Offsets inside the printArea (viewport → local)
39202
+ // const areaRect = printArea.getBoundingClientRect();
39203
+ // const offsetX = Math.max(0, minX - areaRect.left);
39204
+ // const offsetY = Math.max(0, minY - areaRect.top);
39205
+ // // 🖼️ 4️⃣ Capture exact region only
39206
+ // const canvas = await html2canvas(printArea, {
39207
+ // backgroundColor: '#ffffff',
39208
+ // scale: 3,
39209
+ // useCORS: true,
39210
+ // x: offsetX,
39211
+ // y: offsetY,
39212
+ // width: chartW,
39213
+ // height: chartH,
39214
+ // windowWidth: Math.max(chartW, printArea.scrollWidth),
39215
+ // windowHeight: Math.max(chartH, printArea.scrollHeight),
39216
+ // logging: false,
39217
+ // });
39218
+ // // restore styles
39219
+ // container.style.setProperty('--print-area-scale', oldScale);
39220
+ // printArea.style.transform = oldTransform;
39221
+ // // 🧾 5️⃣ Export the result
39222
+ // const dataUrl = canvas.toDataURL('image/png');
39223
+ // const allStyles = Array.from(document.querySelectorAll('style,link[rel="stylesheet"]'))
39224
+ // .map(s => s.outerHTML)
39225
+ // .join('\n');
39226
+ // // 🪟 6️⃣ Dynamic preview / print window
39227
+ // const popupW = Math.min(chartW * 0.5, screen.availWidth - 100);
39228
+ // const popupH = Math.min(chartH * 0.5, screen.availHeight - 100);
39229
+ // const printWindow = window.open('', '', `width=${popupW},height=${popupH},resizable=yes`);
39230
+ // const css = `
39231
+ // <style>
39232
+ // @page { size: ${chartW}px ${chartH}px; margin: 0; }
39233
+ // html, body {
39234
+ // margin: 0; padding: 0;
39235
+ // width: 100%; height: 100%;
39236
+ // background: white;
39237
+ // display: flex; align-items: center; justify-content: center;
39238
+ // }
39239
+ // img {
39240
+ // width: ${chartW}px;
39241
+ // height: ${chartH}px;
39242
+ // object-fit: contain;
39243
+ // }
39244
+ // </style>
39245
+ // `;
39246
+ // printWindow!.document.write(`
39247
+ // <html><head>${allStyles}${css}</head>
39248
+ // <body><img src="${dataUrl}" /></body></html>
39249
+ // `);
39250
+ // printWindow!.document.close();
39251
+ // printWindow!.addEventListener('load', () => {
39252
+ // printWindow!.focus();
39253
+ // printWindow!.print();
39254
+ // });
39255
+ // }
39256
+ // async exportOrgChartAtomic(): Promise<void> {
39257
+ // this.printing$.next(true);
39258
+ // const container = this.$container()?.nativeElement as HTMLElement;
39259
+ // const printArea = this.$printArea()?.nativeElement as HTMLElement;
39260
+ // if (!printArea) return;
39261
+ // const canvas = await html2canvas(printArea, {
39262
+ // backgroundColor: '#ffffff',
39263
+ // scale: 3,
39264
+ // useCORS: true,
39265
+ // });
39266
+ // const dataUrl = canvas.toDataURL('image/png');
39267
+ // const imgWidth = 210; // A4 width in mm
39268
+ // const pageHeight = 297; // A4 height in mm
39269
+ // const imgHeight = (canvas.height * imgWidth) / canvas.width;
39270
+ // const { jsPDF } = jspdf; // ✅ Destructure the jsPDF class
39271
+ // const pdf = new jsPDF('p', 'mm', 'a4'); // ✅ Proper instantiation
39272
+ // // Scale to fit within A4 page
39273
+ // let position = 0;
39274
+ // if (imgHeight > pageHeight) {
39275
+ // // Multi-page logic
39276
+ // let remainingHeight = imgHeight;
39277
+ // while (remainingHeight > 0) {
39278
+ // pdf.addImage(dataUrl, 'PNG', 0, position, imgWidth, imgHeight);
39279
+ // remainingHeight -= pageHeight;
39280
+ // if (remainingHeight > 0) {
39281
+ // pdf.addPage();
39282
+ // position = 0;
39283
+ // }
39284
+ // }
39285
+ // } else {
39286
+ // pdf.addImage(dataUrl, 'PNG', 0, 0, imgWidth, imgHeight);
39287
+ // }
39288
+ // pdf.save('OrgChart.pdf');
39289
+ // this.printing$.next(false);
39290
+ // }
39291
+ // async exportOrgChartOnePage(): Promise<void> {
39292
+ // const container = this.$container()?.nativeElement as HTMLElement;
39293
+ // const printArea = this.$printArea()?.nativeElement as HTMLElement;
39294
+ // if (!printArea) return;
39295
+ // // 🧭 1️⃣ Get all nodes inside `.tree`
39296
+ // const allNodes = Array.from(printArea.querySelectorAll('.tree, .tree *')) as HTMLElement[];
39297
+ // const boxes = allNodes.map(n => n.getBoundingClientRect());
39298
+ // const minX = Math.min(...boxes.map(b => b.left));
39299
+ // const minY = Math.min(...boxes.map(b => b.top));
39300
+ // const maxX = Math.max(...boxes.map(b => b.right));
39301
+ // const maxY = Math.max(...boxes.map(b => b.bottom));
39302
+ // const chartW = Math.ceil(maxX - minX);
39303
+ // const chartH = Math.ceil(maxY - minY);
39304
+ // const areaRect = printArea.getBoundingClientRect();
39305
+ // const offsetX = Math.max(0, minX - areaRect.left);
39306
+ // const offsetY = Math.max(0, minY - areaRect.top);
39307
+ // // 🖼️ 2️⃣ Capture cropped canvas
39308
+ // const canvas = await html2canvas(printArea, {
39309
+ // backgroundColor: '#fff',
39310
+ // scale: 3,
39311
+ // useCORS: true,
39312
+ // x: offsetX,
39313
+ // y: offsetY,
39314
+ // width: chartW,
39315
+ // height: chartH,
39316
+ // });
39317
+ // // 🧮 3️⃣ Convert to PNG + fit to A4 ratio
39318
+ // const dataUrl = canvas.toDataURL('image/png');
39319
+ // const { jsPDF } = jspdf;
39320
+ // const pdf = new jsPDF('l', 'mm', 'a4'); // landscape
39321
+ // const pageW = pdf.internal.pageSize.getWidth();
39322
+ // const pageH = pdf.internal.pageSize.getHeight();
39323
+ // const imgRatio = chartW / chartH;
39324
+ // const pageRatio = pageW / pageH;
39325
+ // let imgW = pageW, imgH = pageH;
39326
+ // if (imgRatio > pageRatio) imgH = pageW / imgRatio;
39327
+ // else imgW = pageH * imgRatio;
39328
+ // const posX = (pageW - imgW) / 2;
39329
+ // const posY = (pageH - imgH) / 2;
39330
+ // // 🪄 4️⃣ Add to PDF centered and scaled
39331
+ // pdf.addImage(dataUrl, 'PNG', posX, posY, imgW, imgH);
39332
+ // pdf.save('OrgChart-OnePage.pdf');
39333
+ // }
39334
+ // async exportOrgChartAutoFit(): Promise<void> {
39335
+ // if (!this.$container()?.nativeElement) return;
39336
+ // this.$container()!.nativeElement.style.setProperty('--print-area-scale', 1);
39337
+ // const container = this.$container()?.nativeElement as HTMLElement;
39338
+ // const printArea = this.$printArea()?.nativeElement as HTMLElement;
39339
+ // if (!printArea) return;
39340
+ // // 🧭 1️⃣ Determine bounding box of all .tree nodes
39341
+ // const allNodes = Array.from(printArea.querySelectorAll('.tree, .tree *')) as HTMLElement[];
39342
+ // const boxes = allNodes.map(n => n.getBoundingClientRect());
39343
+ // const minX = Math.min(...boxes.map(b => b.left));
39344
+ // const minY = Math.min(...boxes.map(b => b.top));
39345
+ // const maxX = Math.max(...boxes.map(b => b.right));
39346
+ // const maxY = Math.max(...boxes.map(b => b.bottom));
39347
+ // const chartW = Math.ceil(maxX - minX);
39348
+ // const chartH = Math.ceil(maxY - minY);
39349
+ // const areaRect = printArea.getBoundingClientRect();
39350
+ // const offsetX = Math.max(0, minX - areaRect.left);
39351
+ // const offsetY = Math.max(0, minY - areaRect.top);
39352
+ // await this.healImagesForCanvas(printArea);
39353
+ // // 🖼️ 2️⃣ Render cropped region only
39354
+ // const canvas = await html2canvas(printArea, {
39355
+ // backgroundColor: '#ffffff',
39356
+ // scale: 3,
39357
+ // useCORS: true,
39358
+ // x: offsetX,
39359
+ // y: offsetY,
39360
+ // width: chartW,
39361
+ // height: chartH,
39362
+ // });
39363
+ // const dataUrl = canvas.toDataURL('image/png');
39364
+ // // 📐 3️⃣ Decide PDF orientation dynamically
39365
+ // const chartRatio = chartW / chartH;
39366
+ // const a4Ratio = 210 / 297; // portrait A4
39367
+ // const orientation = chartRatio > a4Ratio ? 'l' : 'p'; // landscape if wider
39368
+ // const { jsPDF } = jspdf;
39369
+ // const pdf = new jsPDF(orientation, 'mm', 'a4');
39370
+ // // 🧩 4️⃣ Compute image placement for best fit
39371
+ // const pageW = pdf.internal.pageSize.getWidth();
39372
+ // const pageH = pdf.internal.pageSize.getHeight();
39373
+ // const imgRatio = chartW / chartH;
39374
+ // const pageRatio = pageW / pageH;
39375
+ // let imgW = pageW, imgH = pageH;
39376
+ // if (imgRatio > pageRatio) imgH = pageW / imgRatio;
39377
+ // else imgW = pageH * imgRatio;
39378
+ // const posX = (pageW - imgW) / 2;
39379
+ // const posY = (pageH - imgH) / 2;
39380
+ // // 🪄 5️⃣ Add image to PDF centered
39381
+ // pdf.addImage(dataUrl, 'PNG', posX, posY, imgW, imgH);
39382
+ // pdf.save('OrgChart-AutoFit.pdf');
39383
+ // }
39384
+ async exportOrgChartPro() {
39385
+ const container = this.$container()?.nativeElement;
39092
39386
  const printArea = this.$printArea()?.nativeElement;
39093
39387
  if (!printArea)
39094
39388
  return;
39095
- // 1️⃣ Scroll the chart fully into view to ensure all nodes render
39096
- printArea.scrollIntoView({ block: 'center', inline: 'center' });
39097
- // 2️⃣ Capture the *visible, styled* node directly (no clone)
39389
+ // -----------------------------------------------------------
39390
+ // 1️⃣ Save and temporarily disable transform scale
39391
+ // -----------------------------------------------------------
39392
+ const oldScale = getComputedStyle(container).getPropertyValue('--print-area-scale');
39393
+ container.style.setProperty('--print-area-scale', '1');
39394
+ await new Promise(r => setTimeout(r)); // allow DOM to reflow
39395
+ // -----------------------------------------------------------
39396
+ // 2️⃣ Heal cross-domain images → DataURL
39397
+ // -----------------------------------------------------------
39398
+ const imgs = Array.from(printArea.querySelectorAll('img'));
39399
+ await Promise.all(imgs.map(async (img) => {
39400
+ if (img.src.startsWith('data:'))
39401
+ return;
39402
+ try {
39403
+ const resp = await fetch(img.src, { mode: 'cors' });
39404
+ const blob = await resp.blob();
39405
+ const reader = new FileReader();
39406
+ await new Promise(res => {
39407
+ reader.onload = () => {
39408
+ img.src = reader.result;
39409
+ res();
39410
+ };
39411
+ reader.readAsDataURL(blob);
39412
+ });
39413
+ }
39414
+ catch {
39415
+ console.warn('⚠️ Skipped image due to CORS:', img.src);
39416
+ }
39417
+ }));
39418
+ // -----------------------------------------------------------
39419
+ // 3️⃣ Compute bounding box of all visible `.tree` nodes
39420
+ // -----------------------------------------------------------
39421
+ const allNodes = Array.from(printArea.querySelectorAll('.tree, .tree *'));
39422
+ const boxes = allNodes.map(n => n.getBoundingClientRect());
39423
+ const minX = Math.min(...boxes.map(b => b.left));
39424
+ const minY = Math.min(...boxes.map(b => b.top));
39425
+ const maxX = Math.max(...boxes.map(b => b.right));
39426
+ const maxY = Math.max(...boxes.map(b => b.bottom));
39427
+ const chartW = Math.ceil(maxX - minX);
39428
+ const chartH = Math.ceil(maxY - minY);
39429
+ const areaRect = printArea.getBoundingClientRect();
39430
+ const offsetX = Math.max(0, minX - areaRect.left);
39431
+ const offsetY = Math.max(0, minY - areaRect.top);
39432
+ // -----------------------------------------------------------
39433
+ // 4️⃣ Render only the chart region (atomic capture)
39434
+ // -----------------------------------------------------------
39098
39435
  const canvas = await html2canvas(printArea, {
39099
- scale: 3,
39100
39436
  backgroundColor: '#ffffff',
39101
39437
  useCORS: true,
39102
- logging: false,
39103
- });
39104
- // 3️⃣ Fit to A4 page size
39105
- const isLandscape = canvas.width > canvas.height;
39106
- const pageW = isLandscape ? 3508 : 2480;
39107
- const pageH = isLandscape ? 2480 : 3508;
39108
- const ratio = Math.min(pageW / canvas.width, pageH / canvas.height);
39109
- const fitW = canvas.width * ratio;
39110
- const fitH = canvas.height * ratio;
39111
- // 4️⃣ Convert to image
39438
+ scale: 3,
39439
+ x: offsetX,
39440
+ y: offsetY,
39441
+ width: chartW,
39442
+ height: chartH
39443
+ });
39444
+ // -----------------------------------------------------------
39445
+ // 5️⃣ Restore scale after capture
39446
+ // -----------------------------------------------------------
39447
+ container.style.setProperty('--print-area-scale', oldScale);
39448
+ // -----------------------------------------------------------
39449
+ // 6️⃣ Prepare image + PDF layout
39450
+ // -----------------------------------------------------------
39112
39451
  const dataUrl = canvas.toDataURL('image/png');
39113
- // 5️⃣ Copy active styles (so print window keeps theme/fonts)
39114
- const allStyles = Array.from(document.querySelectorAll('style,link[rel="stylesheet"]'))
39115
- .map(s => s.outerHTML)
39116
- .join('\n');
39117
- // 6️⃣ Open dynamically sized preview window
39118
- const popupW = Math.min(canvas.width * 0.5, screen.availWidth - 100);
39119
- const popupH = Math.min(canvas.height * 0.5, screen.availHeight - 100);
39120
- const printWindow = window.open('', '', `width=${popupW},height=${popupH},resizable=yes`);
39121
- // 7️⃣ Print layout (A4/A3 fit)
39122
- const css = `
39123
- <style>
39124
- @page { size: A4 ${isLandscape ? 'landscape' : 'portrait'}; margin: 0; }
39125
- html, body {
39126
- margin: 0; padding: 0;
39127
- width: 100%; height: 100%;
39128
- background: white;
39129
- display: flex; align-items: center; justify-content: center;
39130
- }
39131
- img {
39132
- width: ${fitW}px; height: ${fitH}px;
39133
- max-width: 100%; max-height: 100%;
39134
- object-fit: contain;
39135
- }
39136
- </style>
39137
- `;
39138
- printWindow.document.write(`
39139
- <html><head>${allStyles}${css}</head>
39140
- <body><img src="${dataUrl}" /></body></html>
39141
- `);
39142
- printWindow.document.close();
39143
- printWindow.addEventListener('load', () => {
39144
- printWindow.focus();
39145
- printWindow.print();
39146
- });
39452
+ const chartRatio = chartW / chartH;
39453
+ const { jsPDF } = jspdf;
39454
+ // choose portrait if tall, landscape if wide
39455
+ const orientation = chartRatio > (210 / 297) ? 'l' : 'p';
39456
+ const pdf = new jsPDF(orientation, 'mm', 'a4');
39457
+ const pageW = pdf.internal.pageSize.getWidth();
39458
+ const pageH = pdf.internal.pageSize.getHeight();
39459
+ const imgRatio = chartW / chartH;
39460
+ const pageRatio = pageW / pageH;
39461
+ let imgW = pageW, imgH = pageH;
39462
+ if (imgRatio > pageRatio)
39463
+ imgH = pageW / imgRatio;
39464
+ else
39465
+ imgW = pageH * imgRatio;
39466
+ const posX = (pageW - imgW) / 2;
39467
+ const posY = (pageH - imgH) / 2;
39468
+ // -----------------------------------------------------------
39469
+ // 7️⃣ Add image + save or preview
39470
+ // -----------------------------------------------------------
39471
+ pdf.addImage(dataUrl, 'PNG', posX, posY, imgW, imgH);
39472
+ // OPTION A: download directly
39473
+ pdf.save('OrgChart-Pro.pdf');
39474
+ // OPTION B: open preview instead
39475
+ //window.open(pdf.output('bloburl'), '_blank');
39147
39476
  }
39148
39477
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreOrgchartflexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39149
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreOrgchartflexComponent, isStandalone: true, selector: "core-orgchartflex", inputs: { $data: { classPropertyName: "$data", publicName: "$data", isSignal: true, isRequired: true, transformFunction: null }, $itemTemplate: { classPropertyName: "$itemTemplate", publicName: "$itemTemplate", isSignal: true, isRequired: true, transformFunction: null }, $compactMode: { classPropertyName: "$compactMode", publicName: "$compactMode", isSignal: true, isRequired: false, transformFunction: null }, $showDissolved: { classPropertyName: "$showDissolved", publicName: "$showDissolved", isSignal: true, isRequired: false, transformFunction: null }, $width: { classPropertyName: "$width", publicName: "$width", isSignal: true, isRequired: false, transformFunction: null }, $height: { classPropertyName: "$height", publicName: "$height", isSignal: true, isRequired: false, transformFunction: null }, $connectionColor: { classPropertyName: "$connectionColor", publicName: "$connectionColor", isSignal: true, isRequired: false, transformFunction: null }, $connectionSize: { classPropertyName: "$connectionSize", publicName: "$connectionSize", isSignal: true, isRequired: false, transformFunction: null }, $fromChildrenToTopLine: { classPropertyName: "$fromChildrenToTopLine", publicName: "$fromChildrenToTopLine", isSignal: true, isRequired: false, transformFunction: null }, $fromParentToChildrenTopLine: { classPropertyName: "$fromParentToChildrenTopLine", publicName: "$fromParentToChildrenTopLine", isSignal: true, isRequired: false, transformFunction: null }, $childrenHorizontalMargin: { classPropertyName: "$childrenHorizontalMargin", publicName: "$childrenHorizontalMargin", isSignal: true, isRequired: false, transformFunction: null }, $childrenBorderSize: { classPropertyName: "$childrenBorderSize", publicName: "$childrenBorderSize", isSignal: true, isRequired: false, transformFunction: null }, $childrenBorderColor: { classPropertyName: "$childrenBorderColor", publicName: "$childrenBorderColor", isSignal: true, isRequired: false, transformFunction: null }, printFlag$: { classPropertyName: "printFlag$", publicName: "printFlag$", isSignal: false, isRequired: false, transformFunction: null }, printing$: { classPropertyName: "printing$", publicName: "printing$", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onPrintAreaRendered: "onPrintAreaRendered" }, viewQueries: [{ propertyName: "$container", first: true, predicate: ["container"], descendants: true, isSignal: true }, { propertyName: "$parent", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "$printArea", first: true, predicate: ["printArea"], descendants: true, isSignal: true }], ngImport: i0, template: "<div #container class=\"core-orgchartflex-container\" (mousedown)=\"startDragging($event, false)\"\r\n (mouseup)=\"stopDragging($event, false)\" (mouseleave)=\"stopDragging($event, false)\" (mousemove)=\"moveEvent($event)\">\r\n\r\n <div class=\"scroll-container\" #parent [ngStyle]=\"{ cursor: $mouseDown() ? 'all-scroll' : 'unset', width: $width() + 'px', height: $height() + 'px' }\">\r\n\r\n <div class=\"zoom-control p-absolute\">\r\n <div class=\"p-relative d-flex d-flex-start\">\r\n <i class=\"feather-minus-circle pointer\" (click)=\"zoonOut()\"></i>\r\n <i class=\"feather-plus-circle pointer\" (click)=\"zoonIn()\"></i>\r\n <i class=\"feather-monitor pointer\" (click)=\"zoonFeat()\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"print-area\" #printArea>\r\n\r\n @for (root of $data(); track $index) {\r\n <ul class=\"tree\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root}\"></ng-container>\r\n </ul>\r\n }\r\n\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-title=\"context.tree$Title\" let-expanded=\"context.tree$Expanded\"\r\n let-children=\"context.tree$Children\" let-tier=\"context.tree$Tier\" let-isActive=\"context.isActive\">\r\n @if ((!$showDissolved() && !!isActive) || (!!$showDissolved())) {\r\n <li>\r\n @if ($compactMode()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.compact]=\"tier !== 1\" [class.expanded]=\"expanded\">\r\n {{ title }}\r\n </span>\r\n }\r\n \r\n <!-- When passing item template and compactMode=false-->\r\n @if (!$compactMode() && !!$itemTemplate()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.expanded]=\"expanded\">\r\n <ng-container *ngTemplateOutlet=\"$itemTemplate(); context: { item: context } \"></ng-container>\r\n </span>\r\n }\r\n <!-- ------------------------- -->\r\n \r\n @if (!!expanded && !!children.length) {\r\n <ul>\r\n @for (child of children; track $index) {\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child}\"></ng-container>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n\r\n </div>\r\n\r\n</div>", styles: [".core-orgchartflex-container{--width: 100px;--height: 100px;--link-color: cadetblue;--print-area-scale: 1;--connection-color: gray;--connection-size: 1px;--from-children-to-top-line: 100px;--from-parent-to-children-top-line: 100px;--children-horizontal-margin: 5px;--children-border-size: 1px;--children-border-color: gray}@keyframes fadeIn{0%{transform:scale(0)}to{transform:scale(1)}}.core-orgchartflex-container *{animation:fadeIn .5s ease-in-out}.core-orgchartflex-container .scroll-container{display:block;width:var(--width);height:var(--height);overflow-x:auto}.core-orgchartflex-container .scroll-container .zoom-control{top:var(--size-layout-block-cell-spacing);right:var(--size-layout-block-cell-spacing);z-index:3}.core-orgchartflex-container .scroll-container .zoom-control i{font-size:16px;color:#848484}.core-orgchartflex-container .scroll-container .print-area{transform:scale(var(--print-area-scale));transition:.5s linear}.core-orgchartflex-container .scroll-container .tree *{box-sizing:border-box}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul,.core-orgchartflex-container .scroll-container .tree li{list-style:none;margin:0;padding:0;position:relative}.core-orgchartflex-container .scroll-container .tree{margin:0 0 1em;text-align:center}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul{display:table}.core-orgchartflex-container .scroll-container .tree ul{width:100%}.core-orgchartflex-container .scroll-container .tree li{display:table-cell;padding:var(--from-children-to-top-line) 0;vertical-align:top!important}.core-orgchartflex-container .scroll-container .tree li:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";left:0;position:absolute;right:0;top:0}.core-orgchartflex-container .scroll-container .tree li:first-child:before{left:50%}.core-orgchartflex-container .scroll-container .tree li:last-child:before{right:50%}.core-orgchartflex-container .scroll-container .tree code,.core-orgchartflex-container .scroll-container .tree span{border:solid var(--children-border-size) var(--children-border-color);display:inline-block;margin:0 var(--children-horizontal-margin) var(--from-parent-to-children-top-line);position:relative}.core-orgchartflex-container .scroll-container .tree span.compact{max-width:75px}.core-orgchartflex-container .scroll-container .tree ul:before,.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";height:calc(var(--from-children-to-top-line) - var(--connection-size));left:50%;position:absolute}.core-orgchartflex-container .scroll-container .tree ul:before{top:calc(var(--from-parent-to-children-top-line) * -1 + var(--connection-size) / 2);height:calc(var(--from-parent-to-children-top-line) - var(--connection-size) * 1.5 + 1px)}.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{top:calc(var(--from-children-to-top-line) * -1 + var(--connection-size) / 2 - var(--children-border-size))}.core-orgchartflex-container .scroll-container .tree>li{margin-top:0}.core-orgchartflex-container .scroll-container .tree>li:before,.core-orgchartflex-container .scroll-container .tree>li:after,.core-orgchartflex-container .scroll-container .tree>li>code:before,.core-orgchartflex-container .scroll-container .tree>li>span:before{outline:none}.core-orgchartflex-container .scroll-container a{text-decoration:unset;color:var(--link-color)!important}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39478
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreOrgchartflexComponent, isStandalone: true, selector: "core-orgchartflex", inputs: { $data: { classPropertyName: "$data", publicName: "$data", isSignal: true, isRequired: true, transformFunction: null }, $itemTemplate: { classPropertyName: "$itemTemplate", publicName: "$itemTemplate", isSignal: true, isRequired: true, transformFunction: null }, $compactMode: { classPropertyName: "$compactMode", publicName: "$compactMode", isSignal: true, isRequired: false, transformFunction: null }, $showDissolved: { classPropertyName: "$showDissolved", publicName: "$showDissolved", isSignal: true, isRequired: false, transformFunction: null }, $width: { classPropertyName: "$width", publicName: "$width", isSignal: true, isRequired: false, transformFunction: null }, $height: { classPropertyName: "$height", publicName: "$height", isSignal: true, isRequired: false, transformFunction: null }, $connectionColor: { classPropertyName: "$connectionColor", publicName: "$connectionColor", isSignal: true, isRequired: false, transformFunction: null }, $connectionSize: { classPropertyName: "$connectionSize", publicName: "$connectionSize", isSignal: true, isRequired: false, transformFunction: null }, $fromChildrenToTopLine: { classPropertyName: "$fromChildrenToTopLine", publicName: "$fromChildrenToTopLine", isSignal: true, isRequired: false, transformFunction: null }, $fromParentToChildrenTopLine: { classPropertyName: "$fromParentToChildrenTopLine", publicName: "$fromParentToChildrenTopLine", isSignal: true, isRequired: false, transformFunction: null }, $childrenHorizontalMargin: { classPropertyName: "$childrenHorizontalMargin", publicName: "$childrenHorizontalMargin", isSignal: true, isRequired: false, transformFunction: null }, $childrenBorderSize: { classPropertyName: "$childrenBorderSize", publicName: "$childrenBorderSize", isSignal: true, isRequired: false, transformFunction: null }, $childrenBorderColor: { classPropertyName: "$childrenBorderColor", publicName: "$childrenBorderColor", isSignal: true, isRequired: false, transformFunction: null }, printFlag$: { classPropertyName: "printFlag$", publicName: "printFlag$", isSignal: false, isRequired: false, transformFunction: null }, printing$: { classPropertyName: "printing$", publicName: "printing$", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onPrintAreaRendered: "onPrintAreaRendered" }, viewQueries: [{ propertyName: "$container", first: true, predicate: ["container"], descendants: true, isSignal: true }, { propertyName: "$parent", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "$printArea", first: true, predicate: ["printArea"], descendants: true, isSignal: true }], ngImport: i0, template: "<div #container class=\"core-orgchartflex-container\" (mousedown)=\"startDragging($event, false)\"\r\n (mouseup)=\"stopDragging($event, false)\" (mouseleave)=\"stopDragging($event, false)\" (mousemove)=\"moveEvent($event)\">\r\n\r\n <div class=\"scroll-container\" #parent\r\n [ngStyle]=\"{ cursor: $mouseDown() ? 'all-scroll' : 'unset', width: $width() + 'px', height: $height() + 'px' }\">\r\n\r\n <div class=\"zoom-control p-absolute\">\r\n <div class=\"p-relative d-flex d-flex-start\">\r\n <i class=\"feather-minus-circle pointer\" (click)=\"zoonOut()\"></i>\r\n <i class=\"feather-plus-circle pointer\" (click)=\"zoonIn()\"></i>\r\n <i class=\"feather-monitor pointer\" (click)=\"zoonFeat()\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"print-area\" #printArea>\r\n\r\n @for (root of $data(); track $index) {\r\n <ul class=\"tree\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root}\"></ng-container>\r\n </ul>\r\n }\r\n\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-title=\"context.tree$Title\" let-expanded=\"context.tree$Expanded\"\r\n let-children=\"context.tree$Children\" let-tier=\"context.tree$Tier\" let-isActive=\"context.isActive\">\r\n @if ((!$showDissolved() && !!isActive) || (!!$showDissolved())) {\r\n <li>\r\n @if ($compactMode()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.compact]=\"tier !== 1\"\r\n [class.expanded]=\"expanded\">\r\n {{ title }}\r\n </span>\r\n }\r\n\r\n <!-- When passing item template and compactMode=false-->\r\n @if (!$compactMode() && !!$itemTemplate()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.expanded]=\"expanded\">\r\n <ng-container *ngTemplateOutlet=\"$itemTemplate(); context: { item: context } \"></ng-container>\r\n </span>\r\n }\r\n <!-- ------------------------- -->\r\n\r\n @if (!!expanded && !!children.length) {\r\n <ul>\r\n @for (child of children; track $index) {\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child}\"></ng-container>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n\r\n </div>\r\n\r\n @if (printing$ | async) {\r\n <app-fullscreen-modal-loader />\r\n }\r\n\r\n <!-- <button class=\"btn btn-outline-danger\" (click)=\"highlightChartRect()\">\r\n Highlight Export Area\r\n </button>\r\n <button class=\"btn btn-outline-danger\" (click)=\"clearChartHighlight()\">\r\n Clear Export Area\r\n </button> -->\r\n\r\n</div>", styles: [".core-orgchartflex-container{--width: 100px;--height: 100px;--link-color: cadetblue;--print-area-scale: 1;--connection-color: gray;--connection-size: 1px;--from-children-to-top-line: 100px;--from-parent-to-children-top-line: 100px;--children-horizontal-margin: 5px;--children-border-size: 1px;--children-border-color: gray}@keyframes fadeIn{0%{transform:scale(0)}to{transform:scale(1)}}.core-orgchartflex-container *{animation:fadeIn .5s ease-in-out}.core-orgchartflex-container .scroll-container{display:block;width:var(--width);height:var(--height);overflow-x:auto}.core-orgchartflex-container .scroll-container .zoom-control{top:var(--size-layout-block-cell-spacing);right:var(--size-layout-block-cell-spacing);z-index:3}.core-orgchartflex-container .scroll-container .zoom-control i{font-size:16px;color:#848484}.core-orgchartflex-container .scroll-container .print-area{transform:scale(var(--print-area-scale));transition:.5s linear}.core-orgchartflex-container .scroll-container .tree *{box-sizing:border-box}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul,.core-orgchartflex-container .scroll-container .tree li{list-style:none;margin:0;padding:0;position:relative}.core-orgchartflex-container .scroll-container .tree{margin:0 0 1em;text-align:center}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul{display:table}.core-orgchartflex-container .scroll-container .tree ul{width:100%}.core-orgchartflex-container .scroll-container .tree li{display:table-cell;padding:var(--from-children-to-top-line) 0;vertical-align:top!important}.core-orgchartflex-container .scroll-container .tree li:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";left:0;position:absolute;right:0;top:0}.core-orgchartflex-container .scroll-container .tree li:first-child:before{left:50%}.core-orgchartflex-container .scroll-container .tree li:last-child:before{right:50%}.core-orgchartflex-container .scroll-container .tree code,.core-orgchartflex-container .scroll-container .tree span{border:solid var(--children-border-size) var(--children-border-color);display:inline-block;margin:0 var(--children-horizontal-margin) var(--from-parent-to-children-top-line);position:relative}.core-orgchartflex-container .scroll-container .tree span.compact{max-width:75px}.core-orgchartflex-container .scroll-container .tree ul:before,.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";height:calc(var(--from-children-to-top-line) - var(--connection-size));left:50%;position:absolute}.core-orgchartflex-container .scroll-container .tree ul:before{top:calc(var(--from-parent-to-children-top-line) * -1 + var(--connection-size) / 2);height:calc(var(--from-parent-to-children-top-line) - var(--connection-size) * 1.5 + 1px)}.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{top:calc(var(--from-children-to-top-line) * -1 + var(--connection-size) / 2 - var(--children-border-size))}.core-orgchartflex-container .scroll-container .tree>li{margin-top:0}.core-orgchartflex-container .scroll-container .tree>li:before,.core-orgchartflex-container .scroll-container .tree>li:after,.core-orgchartflex-container .scroll-container .tree>li>code:before,.core-orgchartflex-container .scroll-container .tree>li>span:before{outline:none}.core-orgchartflex-container .scroll-container a{text-decoration:unset;color:var(--link-color)!important}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39150
39479
  }
39151
39480
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreOrgchartflexComponent, decorators: [{
39152
39481
  type: Component,
39153
39482
  args: [{ selector: 'core-orgchartflex', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
39154
39483
  NgStyle,
39484
+ AsyncPipe,
39155
39485
  NgTemplateOutlet,
39156
- ], template: "<div #container class=\"core-orgchartflex-container\" (mousedown)=\"startDragging($event, false)\"\r\n (mouseup)=\"stopDragging($event, false)\" (mouseleave)=\"stopDragging($event, false)\" (mousemove)=\"moveEvent($event)\">\r\n\r\n <div class=\"scroll-container\" #parent [ngStyle]=\"{ cursor: $mouseDown() ? 'all-scroll' : 'unset', width: $width() + 'px', height: $height() + 'px' }\">\r\n\r\n <div class=\"zoom-control p-absolute\">\r\n <div class=\"p-relative d-flex d-flex-start\">\r\n <i class=\"feather-minus-circle pointer\" (click)=\"zoonOut()\"></i>\r\n <i class=\"feather-plus-circle pointer\" (click)=\"zoonIn()\"></i>\r\n <i class=\"feather-monitor pointer\" (click)=\"zoonFeat()\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"print-area\" #printArea>\r\n\r\n @for (root of $data(); track $index) {\r\n <ul class=\"tree\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root}\"></ng-container>\r\n </ul>\r\n }\r\n\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-title=\"context.tree$Title\" let-expanded=\"context.tree$Expanded\"\r\n let-children=\"context.tree$Children\" let-tier=\"context.tree$Tier\" let-isActive=\"context.isActive\">\r\n @if ((!$showDissolved() && !!isActive) || (!!$showDissolved())) {\r\n <li>\r\n @if ($compactMode()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.compact]=\"tier !== 1\" [class.expanded]=\"expanded\">\r\n {{ title }}\r\n </span>\r\n }\r\n \r\n <!-- When passing item template and compactMode=false-->\r\n @if (!$compactMode() && !!$itemTemplate()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.expanded]=\"expanded\">\r\n <ng-container *ngTemplateOutlet=\"$itemTemplate(); context: { item: context } \"></ng-container>\r\n </span>\r\n }\r\n <!-- ------------------------- -->\r\n \r\n @if (!!expanded && !!children.length) {\r\n <ul>\r\n @for (child of children; track $index) {\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child}\"></ng-container>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n\r\n </div>\r\n\r\n</div>", styles: [".core-orgchartflex-container{--width: 100px;--height: 100px;--link-color: cadetblue;--print-area-scale: 1;--connection-color: gray;--connection-size: 1px;--from-children-to-top-line: 100px;--from-parent-to-children-top-line: 100px;--children-horizontal-margin: 5px;--children-border-size: 1px;--children-border-color: gray}@keyframes fadeIn{0%{transform:scale(0)}to{transform:scale(1)}}.core-orgchartflex-container *{animation:fadeIn .5s ease-in-out}.core-orgchartflex-container .scroll-container{display:block;width:var(--width);height:var(--height);overflow-x:auto}.core-orgchartflex-container .scroll-container .zoom-control{top:var(--size-layout-block-cell-spacing);right:var(--size-layout-block-cell-spacing);z-index:3}.core-orgchartflex-container .scroll-container .zoom-control i{font-size:16px;color:#848484}.core-orgchartflex-container .scroll-container .print-area{transform:scale(var(--print-area-scale));transition:.5s linear}.core-orgchartflex-container .scroll-container .tree *{box-sizing:border-box}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul,.core-orgchartflex-container .scroll-container .tree li{list-style:none;margin:0;padding:0;position:relative}.core-orgchartflex-container .scroll-container .tree{margin:0 0 1em;text-align:center}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul{display:table}.core-orgchartflex-container .scroll-container .tree ul{width:100%}.core-orgchartflex-container .scroll-container .tree li{display:table-cell;padding:var(--from-children-to-top-line) 0;vertical-align:top!important}.core-orgchartflex-container .scroll-container .tree li:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";left:0;position:absolute;right:0;top:0}.core-orgchartflex-container .scroll-container .tree li:first-child:before{left:50%}.core-orgchartflex-container .scroll-container .tree li:last-child:before{right:50%}.core-orgchartflex-container .scroll-container .tree code,.core-orgchartflex-container .scroll-container .tree span{border:solid var(--children-border-size) var(--children-border-color);display:inline-block;margin:0 var(--children-horizontal-margin) var(--from-parent-to-children-top-line);position:relative}.core-orgchartflex-container .scroll-container .tree span.compact{max-width:75px}.core-orgchartflex-container .scroll-container .tree ul:before,.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";height:calc(var(--from-children-to-top-line) - var(--connection-size));left:50%;position:absolute}.core-orgchartflex-container .scroll-container .tree ul:before{top:calc(var(--from-parent-to-children-top-line) * -1 + var(--connection-size) / 2);height:calc(var(--from-parent-to-children-top-line) - var(--connection-size) * 1.5 + 1px)}.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{top:calc(var(--from-children-to-top-line) * -1 + var(--connection-size) / 2 - var(--children-border-size))}.core-orgchartflex-container .scroll-container .tree>li{margin-top:0}.core-orgchartflex-container .scroll-container .tree>li:before,.core-orgchartflex-container .scroll-container .tree>li:after,.core-orgchartflex-container .scroll-container .tree>li>code:before,.core-orgchartflex-container .scroll-container .tree>li>span:before{outline:none}.core-orgchartflex-container .scroll-container a{text-decoration:unset;color:var(--link-color)!important}\n"] }]
39486
+ FullscreenModalLoaderComponent
39487
+ ], template: "<div #container class=\"core-orgchartflex-container\" (mousedown)=\"startDragging($event, false)\"\r\n (mouseup)=\"stopDragging($event, false)\" (mouseleave)=\"stopDragging($event, false)\" (mousemove)=\"moveEvent($event)\">\r\n\r\n <div class=\"scroll-container\" #parent\r\n [ngStyle]=\"{ cursor: $mouseDown() ? 'all-scroll' : 'unset', width: $width() + 'px', height: $height() + 'px' }\">\r\n\r\n <div class=\"zoom-control p-absolute\">\r\n <div class=\"p-relative d-flex d-flex-start\">\r\n <i class=\"feather-minus-circle pointer\" (click)=\"zoonOut()\"></i>\r\n <i class=\"feather-plus-circle pointer\" (click)=\"zoonIn()\"></i>\r\n <i class=\"feather-monitor pointer\" (click)=\"zoonFeat()\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"print-area\" #printArea>\r\n\r\n @for (root of $data(); track $index) {\r\n <ul class=\"tree\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root}\"></ng-container>\r\n </ul>\r\n }\r\n\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-title=\"context.tree$Title\" let-expanded=\"context.tree$Expanded\"\r\n let-children=\"context.tree$Children\" let-tier=\"context.tree$Tier\" let-isActive=\"context.isActive\">\r\n @if ((!$showDissolved() && !!isActive) || (!!$showDissolved())) {\r\n <li>\r\n @if ($compactMode()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.compact]=\"tier !== 1\"\r\n [class.expanded]=\"expanded\">\r\n {{ title }}\r\n </span>\r\n }\r\n\r\n <!-- When passing item template and compactMode=false-->\r\n @if (!$compactMode() && !!$itemTemplate()) {\r\n <span (click)=\"toggleExpand(context)\" class=\"pointer\" [class.expanded]=\"expanded\">\r\n <ng-container *ngTemplateOutlet=\"$itemTemplate(); context: { item: context } \"></ng-container>\r\n </span>\r\n }\r\n <!-- ------------------------- -->\r\n\r\n @if (!!expanded && !!children.length) {\r\n <ul>\r\n @for (child of children; track $index) {\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child}\"></ng-container>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n\r\n </div>\r\n\r\n @if (printing$ | async) {\r\n <app-fullscreen-modal-loader />\r\n }\r\n\r\n <!-- <button class=\"btn btn-outline-danger\" (click)=\"highlightChartRect()\">\r\n Highlight Export Area\r\n </button>\r\n <button class=\"btn btn-outline-danger\" (click)=\"clearChartHighlight()\">\r\n Clear Export Area\r\n </button> -->\r\n\r\n</div>", styles: [".core-orgchartflex-container{--width: 100px;--height: 100px;--link-color: cadetblue;--print-area-scale: 1;--connection-color: gray;--connection-size: 1px;--from-children-to-top-line: 100px;--from-parent-to-children-top-line: 100px;--children-horizontal-margin: 5px;--children-border-size: 1px;--children-border-color: gray}@keyframes fadeIn{0%{transform:scale(0)}to{transform:scale(1)}}.core-orgchartflex-container *{animation:fadeIn .5s ease-in-out}.core-orgchartflex-container .scroll-container{display:block;width:var(--width);height:var(--height);overflow-x:auto}.core-orgchartflex-container .scroll-container .zoom-control{top:var(--size-layout-block-cell-spacing);right:var(--size-layout-block-cell-spacing);z-index:3}.core-orgchartflex-container .scroll-container .zoom-control i{font-size:16px;color:#848484}.core-orgchartflex-container .scroll-container .print-area{transform:scale(var(--print-area-scale));transition:.5s linear}.core-orgchartflex-container .scroll-container .tree *{box-sizing:border-box}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul,.core-orgchartflex-container .scroll-container .tree li{list-style:none;margin:0;padding:0;position:relative}.core-orgchartflex-container .scroll-container .tree{margin:0 0 1em;text-align:center}.core-orgchartflex-container .scroll-container .tree,.core-orgchartflex-container .scroll-container .tree ul{display:table}.core-orgchartflex-container .scroll-container .tree ul{width:100%}.core-orgchartflex-container .scroll-container .tree li{display:table-cell;padding:var(--from-children-to-top-line) 0;vertical-align:top!important}.core-orgchartflex-container .scroll-container .tree li:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";left:0;position:absolute;right:0;top:0}.core-orgchartflex-container .scroll-container .tree li:first-child:before{left:50%}.core-orgchartflex-container .scroll-container .tree li:last-child:before{right:50%}.core-orgchartflex-container .scroll-container .tree code,.core-orgchartflex-container .scroll-container .tree span{border:solid var(--children-border-size) var(--children-border-color);display:inline-block;margin:0 var(--children-horizontal-margin) var(--from-parent-to-children-top-line);position:relative}.core-orgchartflex-container .scroll-container .tree span.compact{max-width:75px}.core-orgchartflex-container .scroll-container .tree ul:before,.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{outline:solid calc(var(--connection-size) / 2) var(--connection-color);content:\"\";height:calc(var(--from-children-to-top-line) - var(--connection-size));left:50%;position:absolute}.core-orgchartflex-container .scroll-container .tree ul:before{top:calc(var(--from-parent-to-children-top-line) * -1 + var(--connection-size) / 2);height:calc(var(--from-parent-to-children-top-line) - var(--connection-size) * 1.5 + 1px)}.core-orgchartflex-container .scroll-container .tree code:before,.core-orgchartflex-container .scroll-container .tree span:before{top:calc(var(--from-children-to-top-line) * -1 + var(--connection-size) / 2 - var(--children-border-size))}.core-orgchartflex-container .scroll-container .tree>li{margin-top:0}.core-orgchartflex-container .scroll-container .tree>li:before,.core-orgchartflex-container .scroll-container .tree>li:after,.core-orgchartflex-container .scroll-container .tree>li>code:before,.core-orgchartflex-container .scroll-container .tree>li>span:before{outline:none}.core-orgchartflex-container .scroll-container a{text-decoration:unset;color:var(--link-color)!important}\n"] }]
39157
39488
  }], ctorParameters: () => [], propDecorators: { printFlag$: [{
39158
39489
  type: Input
39159
39490
  }], printing$: [{
@@ -41210,33 +41541,33 @@ const coreWorkflowRoutes = [
41210
41541
  {
41211
41542
  path: 'form-assign/:id',
41212
41543
  outlet: "formAssignAux",
41213
- loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-CZ2JRZOo.mjs').then(m => m.WfFormAssignComponent),
41544
+ loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-V9exT_fm.mjs').then(m => m.WfFormAssignComponent),
41214
41545
  canDeactivate: [CanDeactivateGuard]
41215
41546
  }
41216
41547
  ]
41217
41548
  },
41218
41549
  {
41219
41550
  path: 'global-config',
41220
- loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-DHgwHR8d.mjs').then(m => m.WfGlobalConfigComponent)
41551
+ loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-BuCfL80F.mjs').then(m => m.WfGlobalConfigComponent)
41221
41552
  },
41222
41553
  {
41223
41554
  path: 'db-settings',
41224
- loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-CGvH7ERp.mjs').then(m => m.DbSettingsComponent)
41555
+ loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-CqNPzdzL.mjs').then(m => m.DbSettingsComponent)
41225
41556
  },
41226
41557
  {
41227
41558
  path: 'workflow-consume',
41228
- loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-CJ75TWh6.mjs').then(m => m.CoreWorkflowConsumeComponent),
41559
+ loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-CvGswHbB.mjs').then(m => m.CoreWorkflowConsumeComponent),
41229
41560
  children: [
41230
41561
  {
41231
41562
  path: ':id',
41232
41563
  outlet: "workflowConsume",
41233
- loadComponent: () => import('./ngx-histaff-alpha-live-form.component-DhA7j-wa.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
41564
+ loadComponent: () => import('./ngx-histaff-alpha-live-form.component-FW_M5cI5.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
41234
41565
  }
41235
41566
  ]
41236
41567
  },
41237
41568
  {
41238
41569
  path: 'workflow-consume/:id',
41239
- loadComponent: () => import('./ngx-histaff-alpha-live-form.component-DhA7j-wa.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
41570
+ loadComponent: () => import('./ngx-histaff-alpha-live-form.component-FW_M5cI5.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
41240
41571
  },
41241
41572
  {
41242
41573
  path: 'workflow-group-edit/:id',
@@ -41246,17 +41577,17 @@ const coreWorkflowRoutes = [
41246
41577
  },
41247
41578
  {
41248
41579
  path: 'design/:id',
41249
- loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-B7szOpgS.mjs').then(m => m.wfDesignWrapperRoutes),
41580
+ loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-B_EjwkZd.mjs').then(m => m.wfDesignWrapperRoutes),
41250
41581
  },
41251
41582
  ]
41252
41583
  },
41253
41584
  {
41254
41585
  path: 'react/:id',
41255
- loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-B_f7Wwyc.mjs').then(m => m.WfInstanceStepReactComponent)
41586
+ loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-OAdGYvAN.mjs').then(m => m.WfInstanceStepReactComponent)
41256
41587
  },
41257
41588
  {
41258
41589
  path: 'status/:id',
41259
- loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-B_2PEQ8y.mjs').then(m => m.WfInstanceStatusComponent)
41590
+ loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-DJuPBwqR.mjs').then(m => m.WfInstanceStatusComponent)
41260
41591
  }
41261
41592
  ];
41262
41593
 
@@ -43878,4 +44209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
43878
44209
  */
43879
44210
 
43880
44211
  export { CoreButtonGroupVnsComponent as $, AppService as A, BaseComponent as B, ChatService as C, DialogService as D, EnumCoreTablePipeType as E, FullscreenModalLoaderComponent as F, CoreDatePickerComponent as G, CoreFormControlSeekerComponent as H, ImageErrorResolverDirective as I, CoreCurrencyInputComponent as J, EnumActorSourceType as K, CoreParamControlComponent as L, MultiLanguageService as M, CoreRadioGroupComponent as N, GptService as O, ApplicationHelpService as P, HotKeysDirective as Q, EnumCorePageEditMode as R, SocketService as S, TranslatePipe as T, CoreFormComponent as U, NavigatorService as V, JsonService as W, AppConfigService as X, EnumCoreButtonVNSCode as Y, READONLY_WORKFLOW_FIELDS as Z, noneAutoClosedAlertOptions as _, CorePageListComponent as a, CommonHttpRequestService as a$, CoreStickerCollectionComponent as a0, HtmlTooltipDirective as a1, CoreControlNoFormArrayComponent as a2, EnumFormDesignMode as a3, CoreControlComponent as a4, JsonSafePipe as a5, CoreAttachmentComponent as a6, CoreMonthSelectorComponent as a7, EnumImageResolverType as a8, NormalizeHumanNamePipe as a9, EnumStyleButtonClass as aA, CanActivateFunctionUrlMapperGuard as aB, InitializationCanActivateFn as aC, InitializationCanMatchFn as aD, httpInterceptorProviders as aE, InterceptorSkipHeader as aF, appTypeInterceptor as aG, baseUrlInterceptor as aH, authInterceptor as aI, graphInterceptor as aJ, tokenInterceptor as aK, responseInterceptor as aL, timeZoneInterceptor as aM, cachingInterceptor as aN, langInterceptor as aO, EnumFilterOperator as aP, OnlineUsersComponent as aQ, ActionService as aR, AppInitializationService as aS, AuthService as aT, CacheService as aU, EnumSwUpdateVersionUpdatesEventType as aV, CheckForUpdateService as aW, EnumDeviceType as aX, EnumBrowserType as aY, EnumOsType as aZ, ClientService as a_, CoreIosSwitcherComponent as aa, SunnyRotatingComponent as ab, MapAppdemoToServerPipePipe as ac, MapAttachmentToServerPipe as ad, MapNewsfeedMediaToServerPipe as ae, StringHtmlPipe as af, UploadedFilenameCutoffPipe as ag, DialogStateComponent as ah, FooterComponent as ai, RightchatComponent as aj, WaittingScreenComponent as ak, longAlertOptions as al, attachmentOptions as am, CORE_VNS_BUTTONS as an, defaultPaging as ao, DESKTOP_SCREEN_HEDER_HEIGHT as ap, MOBILE_SCREEN_HEDER_HEIGHT as aq, themeBlue as ar, DATE_VALUE_ACCESSOR as as, DateValueAccessor as at, EnumDragType as au, EnumErrorType as av, EnumIconClass as aw, EnumProfileInfoSector as ax, EnumSignalRType as ay, EnumSortDirection as az, CoreCheckboxComponent as b, MutationViewComponent as b$, TLA_CONFIG as b0, ConfigService as b1, CoreTableService as b2, DndService as b3, DocxMergeService as b4, FilterKitService as b5, GrpcService as b6, HeaderService as b7, HistoryService as b8, HttpErrorHandler as b9, TopicPermissionService as bA, TopicTreeService as bB, UploadedFileService as bC, UrlService as bD, UserActivityService as bE, EvaluateDialogService as bF, EnumWorkScheduleViewMode as bG, WorkShiftDndService as bH, AtShiftPatternComponent as bI, AtShiftPatternApplyComponent as bJ, AtShiftPatternEditComponent as bK, AtWorksignComponent as bL, AtWorksignService as bM, FunctionComponent as bN, IndividualScheduleApplyComponent as bO, FunctionEditComponent as bP, FunctionIgnoreComponent as bQ, FunctionIgnoreEditComponent as bR, GroupFunctionComponent as bS, GroupFunctionEditComponent as bT, hrmSchemaRoutes as bU, InMemoryComponent as bV, LanguageComponent as bW, LanguageEditComponent as bX, MenuComponent as bY, MenuEditComponent as bZ, MutationLogComponent as b_, HubConnectionService as ba, IpServiceService as bb, LayoutService as bc, LiquidJsService as bd, MapService as be, MenuService as bf, MessageService as bg, ModalService as bh, OrganizationService as bi, PkceService as bj, PositionTransferService as bk, EnumNotificationDir as bl, NotificationActionType as bm, PushNotificationService as bn, RandomAvatarService as bo, RequestCache as bp, RequestCacheWithMap as bq, ResponseService as br, RoutingService as bs, EnumSsrsExpressFileExtension as bt, EnumSsrsExpressExportFormat as bu, SsrsExpressService as bv, StatisticService as bw, StatisticAuthService as bx, SysMenuService as by, TimeSheetService as bz, BaseEditComponent as c, CoreEmployeeSeekerComponent as c$, PaSalaryPolicyComponent as c0, PaSalaryPolicyEditComponent as c1, PortalRouteComponent as c2, ScheduleOverviewComponent as c3, simpleChatRoutes as c4, PortalRouteEditComponent as c5, SysOtherListComponent as c6, SysOtherListEditComponent as c7, SysOtherListTypeComponent as c8, SysOtherListTypeEditComponent as c9, NewlyCreatedTokenService as cA, CoreApiProgressComponent as cB, CoreButtonGroupComponent as cC, EnumCoreButtonCode as cD, ActionSvgEditComponent as cE, CoreButtonGroupService as cF, CoreButtonVnsComponent as cG, CoreCommonParamKitComponent as cH, CoreCompareDbPipelineComponent as cI, CoreCompositionState as cJ, CoreCompositionService as cK, CoreCompositionComponent as cL, CoreConfirmDialogComponent as cM, ConfirmDialogStateComponent as cN, CoreLazyMountComponent as cO, CoreRootMenuItemPickerComponent as cP, CoreRootMenuItemPickerService as cQ, ECoreTableToolCode as cR, ECoreTableToolClass as cS, CoreTableComponent as cT, CoreComProfileComponent as cU, CoreContractSeekerComponent as cV, CoreControlNoGridBufferComponent as cW, CoreControlNoSeekerComponent as cX, coreDocGenRoutes as cY, CoreDocgenToolbarComponent as cZ, CoreEmployeeScheduleComponent as c_, SysActionComponent as ca, SysActionEditComponent as cb, SysFunctionActionComponent as cc, SysFunctionActionEditComponent as cd, SysFunctionActionMapperComponent as ce, SysFunctionUrlMapperComponent as cf, FunctionEditService as cg, SysModuleComponent as ch, SysModuleEditComponent as ci, SysRouteAccessComponent as cj, liner_to_nested_array_script as ck, blob_to_base64_script as cl, AlertComponent as cm, EnumAlertType as cn, IAlertOptions as co, AnimatedTextService as cp, AnimatedTextComponent as cq, BaseDropdownComponent as cr, ButtonGroupModule as cs, ButtonGroupService as ct, ButtonGroupComponent as cu, EnumButtonCaptionCode as cv, CoreButtonComponent as cw, CoreAccordionComponent as cx, CoreAccordionService as cy, CoreActiveUserCountComponent as cz, EnumFormBaseContolType as d, CorePermissionActionsComponent as d$, EnumCoreFileUploaderType as d0, CoreFileUploaderComponent as d1, CoreFilterHubComponent as d2, CoreFilterHubService as d3, ControlBase as d4, Textbox as d5, CoreControlService as d6, CustomValidators as d7, URL_PATTERN as d8, coreFormDesignRoutes as d9, CoreOauthCallbackOffice365Component as dA, EnumCoreOrgTreeaAccessorMode as dB, EnumCoreOrgTreeaSearchMode as dC, CoreOrgTreeComponent as dD, CoreOrgTreeState as dE, CoreOrgTreeService as dF, CoreOrgUnitSeekerComponent as dG, CoreOrgchartflexComponent as dH, CoreOrgParamComponent as dI, EnumCorePageEditBootstrapClass as dJ, EnumCorePageEditFieldType as dK, CorePageEditService as dL, CorePageEditLiteComponent as dM, CorePageEditTabComponent as dN, EnumExType as dO, CorePageListService as dP, CorePageListState as dQ, CorePageListContentComponent as dR, EnumCoreViewItemType as dS, CorePageViewComponent as dT, CorePaginationComponent as dU, CorePaginationFullComponent as dV, CorePaginationFullService as dW, CoreFileFormatPickerComponent as dX, CorePermissionService as dY, EnumPermissionObjectType as dZ, CorePermissionComponent as d_, CoreFormTabComponent as da, CoreFormLiteComponent as db, CoreFormControlBaseComponent as dc, EnumCoreSeekerColumnJob as dd, EnumCoreSeekerColumnStaffProfile as de, EnumCoreSeekerColumnContract as df, EnumCoreSeekerColumnWorking as dg, EnumCoreSeekerColumnWage as dh, EnumCoreSeekerColumnPosition as di, EnumCoreSeekerColumnPositionConcurrent as dj, EnumCoreSeekerColumnAutoForm as dk, SeekerService as dl, CoreGridBufferComponent as dm, CoreHeaderParamsComponent as dn, CoreHelperComponent as dp, CoreLineComponent as dq, CoreLiquidWysiwygComponent as dr, CoreListComponent as ds, CoreListLazyComponent as dt, CoreLoadingSurfaceComponent as du, CoreMccComponent as dv, CoreMonthPickerComponent as dw, CoreNavigationTrackerComponent as dx, coreNavigationTrackerRoutes as dy, CoreOauthCallbackComponent as dz, CorePageEditComponent as e, StringService as e$, CorePositionConcurrentSeekerComponent as e0, CorePositionSeekerComponent as e1, CoreQrcodeComponent as e2, EnumOparator as e3, CoreQueryBuilderComponent as e4, CoreReducerIconComponent as e5, CoreRotatingTextComponent as e6, CoreRouteAccumulatorComponent as e7, CoreRoutingHistoryComponent as e8, CoreSalaryPolicyPickerComponent as e9, CoreD3Service as eA, CorePieComponent as eB, CoreScatterPlotComponent as eC, EnumHrComparisonCode as eD, EnumICoreStatisticWidgetDataType as eE, CoreStatisticWidgetComponent as eF, DecisionComponent as eG, EvaluateDialogComponent as eH, HuconcurrentlyComponent as eI, JobComponent as eJ, LanguageChangerComponent as eK, DEFAULT_SVG as eL, ItemComponent as eM, NavigatorComponent as eN, OtpInputComponent as eO, OtpInputService as eP, PageTitleComponent as eQ, PaginationComponent as eR, FilterPipe as eS, normalizeHumanName as eT, PositionComponent as eU, PositionEditService as eV, CoreDatetimeService as eW, FileService as eX, LongTaskService as eY, EnumRecursiveFields as eZ, RecursiveService as e_, CoreScrollComponent as ea, CoreScrollLazyComponent as eb, CoreSeenByComponent as ec, CoreShiftCardComponent as ed, CoreShiftCellComponent as ee, CoreShiftCollectionComponent as ef, CoreShiftStickerComponent as eg, STICKER_COLOR_SCHEMA as eh, CoreStatusStickerComponent as ei, CoreSubFormGroupComponent as ej, CoreTabListComponent as ek, CoreTagsComponent as el, CoreTopicPickerComponent as em, EnumCoreArticleCategoryTreeaAccessorMode as en, CoreTopicTreeComponent as eo, CoreTreeComponent as ep, EnumCoreTreeGridEditMode as eq, CoreTreeGridComponent as er, CoreWageSeekerComponent as es, CoreWorkingSeekerComponent as et, coreWorkflowRoutes as eu, CoreWorkflowBuilderComponent as ev, CoreWorkflowGroupEditComponent as ew, CoreYearPickerComponent as ex, CoreYearSelectorComponent as ey, EnumCoreD3ScaleType as ez, CorePageHeaderComponent as f, UnicodeService as f0, StaffProfileComponent as f1, ThreedotsComponent as f2, TooltipComponent as f3, UserActivityComponent as f4, WageComponent as f5, tooltip_directive as f6, coreStickerCollection_component as f7, dragReorder_directive as f8, CoreTabsComponent as g, CoreWorkflowService as h, EnumCoreFormControlSeekerSourceType as i, AlertService as j, CoreFormService as k, DbService as l, AiHintForColumnComponent as m, CoreWorkflowListComponent as n, TooltipDirective as o, DragReorderDirective as p, CanDeactivateGuard as q, TableCellPipe as r, MapAvatarToServerPipe as s, alertOptions as t, CoreTerminalSpinnerComponent as u, CoreFormDesignService as v, EnumWorkflowStepType as w, DomService as x, CoreDropdownComponent as y, CoreChecklistComponent as z };
43881
- //# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-CKFFDZWG.mjs.map
44212
+ //# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-YPc6xct6.mjs.map