@acorex/connectivity 21.0.0-next.59 → 21.0.0-next.63

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 (16) hide show
  1. package/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-SjZSega-.mjs → acorex-connectivity-mock-acorex-connectivity-mock-U3_OWcLL.mjs} +937 -503
  2. package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-U3_OWcLL.mjs.map +1 -0
  3. package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-BF9U-Hd6.mjs → acorex-connectivity-mock-assign-to-manager.activity-BRdgF2Nt.mjs} +2 -2
  4. package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-BF9U-Hd6.mjs.map → acorex-connectivity-mock-assign-to-manager.activity-BRdgF2Nt.mjs.map} +1 -1
  5. package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-DhNpfDnJ.mjs → acorex-connectivity-mock-chat-generate-image.command-D6HSaQY0.mjs} +2 -2
  6. package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-DhNpfDnJ.mjs.map → acorex-connectivity-mock-chat-generate-image.command-D6HSaQY0.mjs.map} +1 -1
  7. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-Bz-zOFK0.mjs → acorex-connectivity-mock-chat-synthesize-speech.command-DkSFKM1o.mjs} +2 -2
  8. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-Bz-zOFK0.mjs.map → acorex-connectivity-mock-chat-synthesize-speech.command-DkSFKM1o.mjs.map} +1 -1
  9. package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-frk47mU7.mjs → acorex-connectivity-mock-chat-transcribe-speech.command-CGB_ud93.mjs} +2 -2
  10. package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-frk47mU7.mjs.map → acorex-connectivity-mock-chat-transcribe-speech.command-CGB_ud93.mjs.map} +1 -1
  11. package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-CAhDQnWv.mjs → acorex-connectivity-mock-user-roles-for-list-column.query-1lSQeAEv.mjs} +2 -2
  12. package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-CAhDQnWv.mjs.map → acorex-connectivity-mock-user-roles-for-list-column.query-1lSQeAEv.mjs.map} +1 -1
  13. package/fesm2022/acorex-connectivity-mock.mjs +1 -1
  14. package/package.json +2 -2
  15. package/types/acorex-connectivity-mock.d.ts +6 -26
  16. package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-SjZSega-.mjs.map +0 -1
@@ -5605,6 +5605,43 @@ const COMMAND_REGISTRY_SEED = [
5605
5605
  ]
5606
5606
  }
5607
5607
  },
5608
+ {
5609
+ "id": "cmd_a7f3e2b91c04",
5610
+ "definition": {
5611
+ "name": "AssessmentManagement.AssessmentSession:ViewOutcomes",
5612
+ "active": true,
5613
+ "description": "ViewSessionOutcomesCommand opens a dialog with stored session.outcomes snapshots (no re-evaluation) for ViewSessionOutcomesCommandInput.sessionId.",
5614
+ "inputOptionDefinitions": [
5615
+ {
5616
+ "name": "sessionId",
5617
+ "title": "Session ID",
5618
+ "interface": {
5619
+ "name": "text-editor",
5620
+ "title": "Session ID",
5621
+ "options": {}
5622
+ },
5623
+ "description": "Assessment Session ID to view stored outcome results for.",
5624
+ "validations": [
5625
+ {
5626
+ "rule": "required"
5627
+ }
5628
+ ]
5629
+ }
5630
+ ],
5631
+ "outputOptionDefinitions": [],
5632
+ "catalogTitle": "View session outcome results",
5633
+ "executionMode": "frontend",
5634
+ "outcomesDefinitionJson": "{\n \"mode\": \"static\",\n \"values\": [\n \"completed\"\n ]\n}",
5635
+ "aiMetadataJson": "{\n \"tags\": [\n \"assessment\",\n \"session\",\n \"outcomes\"\n ]\n}",
5636
+ "categories": [
5637
+ {
5638
+ "name": "assessment",
5639
+ "order": 11,
5640
+ "title": "Assessment"
5641
+ }
5642
+ ]
5643
+ }
5644
+ },
5608
5645
  {
5609
5646
  "id": "cmd_77791c191333",
5610
5647
  "definition": {
@@ -21457,7 +21494,7 @@ class AXCAiManagementMockModule {
21457
21494
  provideCommandSetups([
21458
21495
  {
21459
21496
  key: 'AiManagement:ChatGenerateImage',
21460
- command: () => import('./acorex-connectivity-mock-chat-generate-image.command-DhNpfDnJ.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
21497
+ command: () => import('./acorex-connectivity-mock-chat-generate-image.command-D6HSaQY0.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
21461
21498
  },
21462
21499
  {
21463
21500
  key: 'AiManagement:ExtractDocumentText',
@@ -21469,11 +21506,11 @@ class AXCAiManagementMockModule {
21469
21506
  },
21470
21507
  {
21471
21508
  key: 'AiManagement:ChatTranscribeSpeech',
21472
- command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-frk47mU7.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
21509
+ command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-CGB_ud93.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
21473
21510
  },
21474
21511
  {
21475
21512
  key: 'AiManagement:ChatSynthesizeSpeech',
21476
- command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-Bz-zOFK0.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
21513
+ command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-DkSFKM1o.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
21477
21514
  },
21478
21515
  ]),
21479
21516
  ] }); }
@@ -21526,7 +21563,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
21526
21563
  provideCommandSetups([
21527
21564
  {
21528
21565
  key: 'AiManagement:ChatGenerateImage',
21529
- command: () => import('./acorex-connectivity-mock-chat-generate-image.command-DhNpfDnJ.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
21566
+ command: () => import('./acorex-connectivity-mock-chat-generate-image.command-D6HSaQY0.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
21530
21567
  },
21531
21568
  {
21532
21569
  key: 'AiManagement:ExtractDocumentText',
@@ -21538,11 +21575,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
21538
21575
  },
21539
21576
  {
21540
21577
  key: 'AiManagement:ChatTranscribeSpeech',
21541
- command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-frk47mU7.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
21578
+ command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-CGB_ud93.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
21542
21579
  },
21543
21580
  {
21544
21581
  key: 'AiManagement:ChatSynthesizeSpeech',
21545
- command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-Bz-zOFK0.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
21582
+ command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-DkSFKM1o.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
21546
21583
  },
21547
21584
  ]),
21548
21585
  ],
@@ -23980,7 +24017,7 @@ function teamLeadScaleItem(name, titleEn, titleFa, questionEn, questionFa, categ
23980
24017
  }
23981
24018
  //#endregion
23982
24019
  /**
23983
- * Company-wide team-lead competency bank items (software context). Variable names use the `tls_` prefix for calculations.
24020
+ * Company-wide team-lead competency bank items (software context). Variable names use the `tls_` prefix for outcomes.
23984
24021
  */
23985
24022
  const teamLeadCompetenciesQuestionBankItems = [
23986
24023
  //#region ---- Technical & professional ----
@@ -24435,6 +24472,61 @@ const QPM = () => pickQuestionnaireCategory('Plant Maintenance');
24435
24472
  const QCP = () => pickQuestionnaireCategory('Compliance & Permits');
24436
24473
  /** Questionnaires folder for team lead / supervisor evaluations. */
24437
24474
  const QTLE = () => pickQuestionnaireCategory('Team Lead Evaluation');
24475
+ /** Wraps outcome items in the default single-section shape used by questionnaire mocks. */
24476
+ function createQuestionnaireOutcomesSection(items, title = createMultiLanguageString('Outcomes', 'نتایج')) {
24477
+ return {
24478
+ sections: items.length
24479
+ ? [
24480
+ {
24481
+ name: 'outcomes',
24482
+ title,
24483
+ order: 0,
24484
+ items,
24485
+ },
24486
+ ]
24487
+ : [],
24488
+ };
24489
+ }
24490
+ //#endregion
24491
+
24492
+ //#region ---- Imports ----
24493
+ //#endregion
24494
+ //#region ---- Compliance — Governance ----
24495
+ const CP_GOVERNANCE_OUTCOMES = [
24496
+ {
24497
+ id: AXPDataGenerator.uuid(),
24498
+ name: 'comp_resilience_index',
24499
+ title: createMultiLanguageString('Resilience index', 'شاخص تاب‌آوری'),
24500
+ description: createMultiLanguageString('Governance strength minus drill decay', 'قدرت حاکمیتی منهای کهنگی مانور'),
24501
+ resultKind: 'number',
24502
+ expression: "fn.ROUND(fn.MIN(100, fn.MAX(0, Number(answer.eval('comp_governance')) * 18 - Number(answer.eval('comp_months_drill')) * 3 + 10)), 0)",
24503
+ },
24504
+ {
24505
+ id: AXPDataGenerator.uuid(),
24506
+ name: 'comp_resilience_status',
24507
+ title: createMultiLanguageString('Resilience status', 'وضعیت تاب‌آوری'),
24508
+ resultKind: 'string',
24509
+ expression: "Number(outcome.eval('comp_resilience_index')) >= 70 ? 'Strong' : Number(outcome.eval('comp_resilience_index')) >= 45 ? 'Moderate' : 'Improve'",
24510
+ },
24511
+ ];
24512
+ //#endregion
24513
+ //#region ---- Compliance — Permits ----
24514
+ const CP_PERMITS_OUTCOMES = [
24515
+ {
24516
+ id: AXPDataGenerator.uuid(),
24517
+ name: 'comp_readiness_score',
24518
+ title: createMultiLanguageString('Readiness score', 'امتیاز آمادگی'),
24519
+ resultKind: 'number',
24520
+ expression: "fn.ROUND(fn.MIN(100, (answer.eval('comp_audit_ready') === 'yes' ? 42 : 8) + (answer.eval('comp_permit_valid') === 'yes' ? 42 : 12) + Number(answer.eval('comp_training_current')) * 3.2), 0)",
24521
+ },
24522
+ {
24523
+ id: AXPDataGenerator.uuid(),
24524
+ name: 'comp_readiness_next_step',
24525
+ title: createMultiLanguageString('Next step', 'گام بعدی'),
24526
+ resultKind: 'string',
24527
+ expression: "Number(outcome.eval('comp_readiness_score')) >= 75 ? 'Keep cadence' : 'Schedule remediation workshop'",
24528
+ },
24529
+ ];
24438
24530
  //#endregion
24439
24531
 
24440
24532
  //#region ---- Imports ----
@@ -24461,7 +24553,7 @@ const compliancePermitsQuestionnaires = [
24461
24553
  post: {
24462
24554
  reviewEnabled: false,
24463
24555
  summaryEnabled: true,
24464
- showCalculationResults: true,
24556
+ showOutcomeResults: true,
24465
24557
  summaryContent: {
24466
24558
  'en-US': '<p><strong>Summary</strong></p>' +
24467
24559
  '<p>Resilience index: <strong>{{comp_resilience_index}}</strong> / 100</p>' +
@@ -24516,6 +24608,7 @@ const compliancePermitsQuestionnaires = [
24516
24608
  },
24517
24609
  ],
24518
24610
  },
24611
+ outcomes: createQuestionnaireOutcomesSection(CP_GOVERNANCE_OUTCOMES),
24519
24612
  scoringType: 'none',
24520
24613
  timeLimit: 720,
24521
24614
  allowPause: true,
@@ -24535,7 +24628,7 @@ const compliancePermitsQuestionnaires = [
24535
24628
  post: {
24536
24629
  reviewEnabled: false,
24537
24630
  summaryEnabled: true,
24538
- showCalculationResults: true,
24631
+ showOutcomeResults: true,
24539
24632
  summaryContent: {
24540
24633
  'en-US': '<p><strong>Summary</strong></p>' +
24541
24634
  '<p>Readiness score: <strong>{{comp_readiness_score}}</strong> / 100</p>' +
@@ -24604,6 +24697,7 @@ const compliancePermitsQuestionnaires = [
24604
24697
  },
24605
24698
  ],
24606
24699
  },
24700
+ outcomes: createQuestionnaireOutcomesSection(CP_PERMITS_OUTCOMES),
24607
24701
  scoringType: 'none',
24608
24702
  timeLimit: 900,
24609
24703
  allowPause: true,
@@ -24616,10 +24710,51 @@ const compliancePermitsQuestionnaires = [
24616
24710
  ];
24617
24711
  //#endregion
24618
24712
 
24713
+ //#region ---- Imports ----
24714
+ //#endregion
24715
+ //#region ---- General — Team alignment ----
24716
+ const GENERAL_TEAM_PULSE_OUTCOMES = [
24717
+ {
24718
+ id: AXPDataGenerator.uuid(),
24719
+ name: 'gen_alignment_index',
24720
+ title: createMultiLanguageString('Alignment index', 'شاخص هم‌ترازی'),
24721
+ description: createMultiLanguageString('0–100 from two 1–5 ratings', '۰–۱۰۰ از دو امتیاز ۱–۵'),
24722
+ resultKind: 'number',
24723
+ expression: "fn.ROUND(((Number(answer.eval('gen_priority_clarity')) + Number(answer.eval('gen_manager_support'))) / 2 - 1) / 4 * 100, 0)",
24724
+ },
24725
+ {
24726
+ id: AXPDataGenerator.uuid(),
24727
+ name: 'gen_alignment_band',
24728
+ title: createMultiLanguageString('Alignment band', 'باند هم‌ترازی'),
24729
+ resultKind: 'string',
24730
+ expression: "Number(outcome.eval('gen_alignment_index')) >= 70 ? 'Aligned' : Number(outcome.eval('gen_alignment_index')) >= 40 ? 'Mixed' : 'At risk'",
24731
+ },
24732
+ ];
24733
+ //#endregion
24734
+ //#region ---- General — Office workplace quality ----
24735
+ const GENERAL_OFFICE_QUALITY_OUTCOMES = [
24736
+ {
24737
+ id: AXPDataGenerator.uuid(),
24738
+ name: 'office_quality_index',
24739
+ title: createMultiLanguageString('Office quality index', 'شاخص کیفیت محیط اداری'),
24740
+ description: createMultiLanguageString('0–100 from seven 1–5 ratings (ergonomics through amenities)', '۰–۱۰۰ از هفت امتیاز ۱–۵ (ارگونومی تا امکانات)'),
24741
+ resultKind: 'number',
24742
+ expression: "fn.ROUND(((Number(answer.eval('off_ergo')) + Number(answer.eval('off_light')) + Number(answer.eval('off_noise')) + Number(answer.eval('off_climate')) + Number(answer.eval('off_space')) + Number(answer.eval('off_focus')) + Number(answer.eval('off_amenities'))) / 7 - 1) / 4 * 100, 0)",
24743
+ },
24744
+ {
24745
+ id: AXPDataGenerator.uuid(),
24746
+ name: 'office_quality_band',
24747
+ title: createMultiLanguageString('Office quality band', 'باند کیفیت محیط اداری'),
24748
+ resultKind: 'string',
24749
+ expression: "Number(outcome.eval('office_quality_index')) >= 75 ? 'Good' : Number(outcome.eval('office_quality_index')) >= 50 ? 'Fair' : 'Poor'",
24750
+ },
24751
+ ];
24752
+ //#endregion
24753
+
24619
24754
  //#region ---- Imports ----
24620
24755
  //#endregion
24621
24756
  const q$6 = mockQuestionBankItemByName;
24622
- /** Stable id for mock calculations and automations that reference this questionnaire. */
24757
+ /** Stable id for mock outcomes and automations that reference this questionnaire. */
24623
24758
  const QUESTIONNAIRE_ID_GENERAL_SITE_BRIEF = AXPDataGenerator.uuid();
24624
24759
  const QUESTIONNAIRE_ID_GENERAL_TEAM_PULSE = AXPDataGenerator.uuid();
24625
24760
  const QUESTIONNAIRE_ID_GENERAL_OFFICE_QUALITY = AXPDataGenerator.uuid();
@@ -24642,7 +24777,7 @@ const generalQuestionnaires = [
24642
24777
  post: {
24643
24778
  reviewEnabled: true,
24644
24779
  summaryEnabled: true,
24645
- showCalculationResults: false,
24780
+ showOutcomeResults: false,
24646
24781
  },
24647
24782
  display: {
24648
24783
  viewMode: 'page-per-group',
@@ -24713,7 +24848,7 @@ const generalQuestionnaires = [
24713
24848
  post: {
24714
24849
  reviewEnabled: true,
24715
24850
  summaryEnabled: true,
24716
- showCalculationResults: true,
24851
+ showOutcomeResults: true,
24717
24852
  summaryContent: {
24718
24853
  'en-US': '<p><strong>Summary</strong></p>' +
24719
24854
  '<p>Alignment index: <strong>{{gen_alignment_index}}</strong> / 100</p>' +
@@ -24768,6 +24903,7 @@ const generalQuestionnaires = [
24768
24903
  },
24769
24904
  ],
24770
24905
  },
24906
+ outcomes: createQuestionnaireOutcomesSection(GENERAL_TEAM_PULSE_OUTCOMES),
24771
24907
  scoringType: 'none',
24772
24908
  timeLimit: 600,
24773
24909
  allowPause: true,
@@ -24794,7 +24930,7 @@ const generalQuestionnaires = [
24794
24930
  post: {
24795
24931
  reviewEnabled: true,
24796
24932
  summaryEnabled: true,
24797
- showCalculationResults: true,
24933
+ showOutcomeResults: true,
24798
24934
  summaryContent: {
24799
24935
  'en-US': '<p><strong>Summary</strong></p>' +
24800
24936
  '<p>Workplace quality index: <strong>{{office_quality_index}}</strong> / 100</p>' +
@@ -24852,6 +24988,7 @@ const generalQuestionnaires = [
24852
24988
  },
24853
24989
  ],
24854
24990
  },
24991
+ outcomes: createQuestionnaireOutcomesSection(GENERAL_OFFICE_QUALITY_OUTCOMES),
24855
24992
  scoringType: 'none',
24856
24993
  timeLimit: 900,
24857
24994
  allowPause: true,
@@ -24864,10 +25001,81 @@ const generalQuestionnaires = [
24864
25001
  ];
24865
25002
  //#endregion
24866
25003
 
25004
+ //#region ---- Imports ----
25005
+ //#endregion
25006
+ //#region ---- Team lead — competency pillars ----
25007
+ const TEAM_LEAD_COMPANY_WIDE_OUTCOMES = [
25008
+ {
25009
+ id: AXPDataGenerator.uuid(),
25010
+ name: 'tls_pillar_technical_index',
25011
+ title: createMultiLanguageString('Technical pillar index', 'شاخص ستون فنی'),
25012
+ description: createMultiLanguageString('0–100 from nine 1–5 ratings (technical & professional)', '۰–۱۰۰ از نه امتیاز ۱–۵ (فنی و حرفه‌ای)'),
25013
+ resultKind: 'number',
25014
+ expression: "fn.ROUND(((Number(answer.eval('tls_tp_stack_tools')) + Number(answer.eval('tls_tp_code_quality')) + Number(answer.eval('tls_tp_complex_problems')) + Number(answer.eval('tls_tp_architecture_decisions')) + Number(answer.eval('tls_tp_best_practices')) + Number(answer.eval('tls_tp_code_review_feedback')) + Number(answer.eval('tls_tp_debugging')) + Number(answer.eval('tls_tp_knowledge_currency')) + Number(answer.eval('tls_tp_mentoring_transfer'))) / 9 - 1) / 4 * 100, 0)",
25015
+ },
25016
+ {
25017
+ id: AXPDataGenerator.uuid(),
25018
+ name: 'tls_pillar_behavioral_index',
25019
+ title: createMultiLanguageString('Behavioral pillar index', 'شاخص ستون رفتاری'),
25020
+ description: createMultiLanguageString('0–100 from seven 1–5 ratings', '۰–۱۰۰ از هفت امتیاز ۱–۵'),
25021
+ resultKind: 'number',
25022
+ expression: "fn.ROUND(((Number(answer.eval('tls_bc_team_communication')) + Number(answer.eval('tls_bc_meetings_participation')) + Number(answer.eval('tls_bc_listening_inclusion')) + Number(answer.eval('tls_bc_feedback_tone')) + Number(answer.eval('tls_bc_disagreement_handling')) + Number(answer.eval('tls_bc_pressure_composure')) + Number(answer.eval('tls_bc_trust_collaboration'))) / 7 - 1) / 4 * 100, 0)",
25023
+ },
25024
+ {
25025
+ id: AXPDataGenerator.uuid(),
25026
+ name: 'tls_pillar_management_index',
25027
+ title: createMultiLanguageString('Management pillar index', 'شاخص ستون مدیریتی'),
25028
+ description: createMultiLanguageString('0–100 from ten 1–5 ratings', '۰–۱۰۰ از ده امتیاز ۱–۵'),
25029
+ resultKind: 'number',
25030
+ expression: "fn.ROUND(((Number(answer.eval('tls_ml_work_distribution')) + Number(answer.eval('tls_ml_backlog_priorities')) + Number(answer.eval('tls_ml_agile_meetings')) + Number(answer.eval('tls_ml_task_breakdown')) + Number(answer.eval('tls_ml_progress_tracking')) + Number(answer.eval('tls_ml_blockers')) + Number(answer.eval('tls_ml_timely_decisions')) + Number(answer.eval('tls_ml_growth_coaching')) + Number(answer.eval('tls_ml_delivery_timing')) + Number(answer.eval('tls_ml_crisis_leadership'))) / 10 - 1) / 4 * 100, 0)",
25031
+ },
25032
+ {
25033
+ id: AXPDataGenerator.uuid(),
25034
+ name: 'tls_pillar_business_index',
25035
+ title: createMultiLanguageString('Business pillar index', 'شاخص ستون کسب‌وکار'),
25036
+ description: createMultiLanguageString('0–100 from eight 1–5 ratings', '۰–۱۰۰ از هشت امتیاز ۱–۵'),
25037
+ resultKind: 'number',
25038
+ expression: "fn.ROUND(((Number(answer.eval('tls_bo_product_user_understanding')) + Number(answer.eval('tls_bo_business_impact')) + Number(answer.eval('tls_bo_quality_time_cost')) + Number(answer.eval('tls_bo_value_prioritization')) + Number(answer.eval('tls_bo_product_owner_sync')) + Number(answer.eval('tls_bo_requirements_handoff')) + Number(answer.eval('tls_bo_roadmap_awareness')) + Number(answer.eval('tls_bo_customer_value'))) / 8 - 1) / 4 * 100, 0)",
25039
+ },
25040
+ {
25041
+ id: AXPDataGenerator.uuid(),
25042
+ name: 'tls_overall_competency_index',
25043
+ title: createMultiLanguageString('Overall competency index', 'شاخص شایستگی کلی'),
25044
+ description: createMultiLanguageString('0–100 across all 34 items (same weight per question)', '۰–۱۰۰ روی هر ۳۴ سوال (وزن یکسان)'),
25045
+ resultKind: 'number',
25046
+ expression: "fn.ROUND(((Number(answer.eval('tls_tp_stack_tools')) + Number(answer.eval('tls_tp_code_quality')) + Number(answer.eval('tls_tp_complex_problems')) + Number(answer.eval('tls_tp_architecture_decisions')) + Number(answer.eval('tls_tp_best_practices')) + Number(answer.eval('tls_tp_code_review_feedback')) + Number(answer.eval('tls_tp_debugging')) + Number(answer.eval('tls_tp_knowledge_currency')) + Number(answer.eval('tls_tp_mentoring_transfer')) + Number(answer.eval('tls_bc_team_communication')) + Number(answer.eval('tls_bc_meetings_participation')) + Number(answer.eval('tls_bc_listening_inclusion')) + Number(answer.eval('tls_bc_feedback_tone')) + Number(answer.eval('tls_bc_disagreement_handling')) + Number(answer.eval('tls_bc_pressure_composure')) + Number(answer.eval('tls_bc_trust_collaboration')) + Number(answer.eval('tls_ml_work_distribution')) + Number(answer.eval('tls_ml_backlog_priorities')) + Number(answer.eval('tls_ml_agile_meetings')) + Number(answer.eval('tls_ml_task_breakdown')) + Number(answer.eval('tls_ml_progress_tracking')) + Number(answer.eval('tls_ml_blockers')) + Number(answer.eval('tls_ml_timely_decisions')) + Number(answer.eval('tls_ml_growth_coaching')) + Number(answer.eval('tls_ml_delivery_timing')) + Number(answer.eval('tls_ml_crisis_leadership')) + Number(answer.eval('tls_bo_product_user_understanding')) + Number(answer.eval('tls_bo_business_impact')) + Number(answer.eval('tls_bo_quality_time_cost')) + Number(answer.eval('tls_bo_value_prioritization')) + Number(answer.eval('tls_bo_product_owner_sync')) + Number(answer.eval('tls_bo_requirements_handoff')) + Number(answer.eval('tls_bo_roadmap_awareness')) + Number(answer.eval('tls_bo_customer_value'))) / 34 - 1) / 4 * 100, 0)",
25047
+ },
25048
+ {
25049
+ id: AXPDataGenerator.uuid(),
25050
+ name: 'tls_competency_band',
25051
+ title: createMultiLanguageString('Overall competency band', 'باند شایستگی کلی'),
25052
+ description: createMultiLanguageString('Interpretation of tls_overall_competency_index', 'تفسیر شاخص شایستگی کلی'),
25053
+ resultKind: 'string',
25054
+ expression: "Number(outcome.eval('tls_overall_competency_index')) >= 80 ? 'Leading' : Number(outcome.eval('tls_overall_competency_index')) >= 65 ? 'Strong' : Number(outcome.eval('tls_overall_competency_index')) >= 50 ? 'Solid' : Number(outcome.eval('tls_overall_competency_index')) >= 35 ? 'Developing' : 'Priority focus'",
25055
+ },
25056
+ {
25057
+ id: AXPDataGenerator.uuid(),
25058
+ name: 'tls_pillar_balance_spread',
25059
+ title: createMultiLanguageString('Pillar balance spread', 'پراکندگی تعادل ستون‌ها'),
25060
+ description: createMultiLanguageString('Difference between strongest and weakest pillar index (0–100)', 'تفاوت بین بالاترین و پایین‌ترین شاخص ستون (۰–۱۰۰)'),
25061
+ resultKind: 'number',
25062
+ expression: "fn.ROUND(fn.MAX(fn.MAX(Number(outcome.eval('tls_pillar_technical_index')), Number(outcome.eval('tls_pillar_behavioral_index'))), fn.MAX(Number(outcome.eval('tls_pillar_management_index')), Number(outcome.eval('tls_pillar_business_index')))) - fn.MIN(fn.MIN(Number(outcome.eval('tls_pillar_technical_index')), Number(outcome.eval('tls_pillar_behavioral_index'))), fn.MIN(Number(outcome.eval('tls_pillar_management_index')), Number(outcome.eval('tls_pillar_business_index')))), 0)",
25063
+ },
25064
+ {
25065
+ id: AXPDataGenerator.uuid(),
25066
+ name: 'tls_priority_focus_pillar',
25067
+ title: createMultiLanguageString('Priority focus pillar', 'ستون تمرکز اولویت'),
25068
+ description: createMultiLanguageString('Pillar with the lowest index (coaching hint)', 'ستونی با کمترین شاخص (راهنمای کوچینگ)'),
25069
+ resultKind: 'string',
25070
+ expression: "Number(outcome.eval('tls_pillar_technical_index')) <= Number(outcome.eval('tls_pillar_behavioral_index')) && Number(outcome.eval('tls_pillar_technical_index')) <= Number(outcome.eval('tls_pillar_management_index')) && Number(outcome.eval('tls_pillar_technical_index')) <= Number(outcome.eval('tls_pillar_business_index')) ? 'Technical & professional' : Number(outcome.eval('tls_pillar_behavioral_index')) <= Number(outcome.eval('tls_pillar_technical_index')) && Number(outcome.eval('tls_pillar_behavioral_index')) <= Number(outcome.eval('tls_pillar_management_index')) && Number(outcome.eval('tls_pillar_behavioral_index')) <= Number(outcome.eval('tls_pillar_business_index')) ? 'Behavioral & communication' : Number(outcome.eval('tls_pillar_management_index')) <= Number(outcome.eval('tls_pillar_technical_index')) && Number(outcome.eval('tls_pillar_management_index')) <= Number(outcome.eval('tls_pillar_behavioral_index')) && Number(outcome.eval('tls_pillar_management_index')) <= Number(outcome.eval('tls_pillar_business_index')) ? 'Management & leadership' : 'Business & organizational'",
25071
+ },
25072
+ ];
25073
+ //#endregion
25074
+
24867
25075
  //#region ---- Imports ----
24868
25076
  //#endregion
24869
25077
  const q$5 = mockQuestionBankItemByName;
24870
- /** Stable id for mock calculations or automations that reference this questionnaire. */
25078
+ /** Stable id for mock outcomes or automations that reference this questionnaire. */
24871
25079
  const QUESTIONNAIRE_ID_TEAM_LEAD_COMPANY_WIDE = AXPDataGenerator.uuid();
24872
25080
  //#region ---- Mock Data ----
24873
25081
  const teamLeadCompetenciesQuestionnaires = [
@@ -24890,7 +25098,7 @@ const teamLeadCompetenciesQuestionnaires = [
24890
25098
  post: {
24891
25099
  reviewEnabled: true,
24892
25100
  summaryEnabled: true,
24893
- showCalculationResults: true,
25101
+ showOutcomeResults: true,
24894
25102
  summaryContent: {
24895
25103
  'en-US': '<p><strong>Competency summary</strong></p>' +
24896
25104
  '<p>Overall index (0–100): <strong>{{tls_overall_competency_index}}</strong> — <strong>{{tls_competency_band}}</strong></p>' +
@@ -25135,6 +25343,7 @@ const teamLeadCompetenciesQuestionnaires = [
25135
25343
  },
25136
25344
  ],
25137
25345
  },
25346
+ outcomes: createQuestionnaireOutcomesSection(TEAM_LEAD_COMPANY_WIDE_OUTCOMES),
25138
25347
  scoringType: 'weighted',
25139
25348
  passingScore: 3,
25140
25349
  timeLimit: 2400,
@@ -25148,6 +25357,245 @@ const teamLeadCompetenciesQuestionnaires = [
25148
25357
  ];
25149
25358
  //#endregion
25150
25359
 
25360
+ //#region ---- Theme display color helper ----
25361
+ /**
25362
+ * Theme color chooser value: `"foreground background border"` utility classes
25363
+ * (same shape as `AXPColorChooserWidgetEditComponent` stores on `color`).
25364
+ */
25365
+ function outcomeThemeDisplayColor(semantic, variant = 'lightest') {
25366
+ return `ax-text-${semantic}-on-${variant} ax-bg-${semantic}-${variant} ax-border-${semantic}-${variant}`;
25367
+ }
25368
+ //#endregion
25369
+
25370
+ //#region ---- Imports ----
25371
+ //#endregion
25372
+ //#region ---- Health — BMI & eGFR ----
25373
+ const HEALTH_BMI_OUTCOMES = [
25374
+ {
25375
+ id: AXPDataGenerator.uuid(),
25376
+ name: 'bmi',
25377
+ title: createMultiLanguageString('BMI', 'شاخص تودهٔ بدنی'),
25378
+ description: createMultiLanguageString('Body mass index (kg/m²) from height (cm) and weight (kg)', 'شاخص تودهٔ بدنی (kg/m²) از قد (سانتی‌متر) و وزن (کیلوگرم)'),
25379
+ resultKind: 'number',
25380
+ expression: "fn.ROUND(Number(answer.eval('weight_kg')) / ((Number(answer.eval('height_cm')) / 100) ** 2), 1)",
25381
+ displayRules: [
25382
+ {
25383
+ id: 'bmi-underweight',
25384
+ order: 0,
25385
+ operator: 'lt',
25386
+ compareValue: 18.5,
25387
+ color: outcomeThemeDisplayColor('primary', 'lightest'),
25388
+ emphasis: 'medium',
25389
+ icon: 'fa-light fa-weight-scale',
25390
+ },
25391
+ {
25392
+ id: 'bmi-normal',
25393
+ order: 1,
25394
+ operator: 'lt',
25395
+ compareValue: 25,
25396
+ color: outcomeThemeDisplayColor('success', 'lightest'),
25397
+ emphasis: 'normal',
25398
+ icon: 'fa-light fa-circle-check',
25399
+ },
25400
+ {
25401
+ id: 'bmi-overweight',
25402
+ order: 2,
25403
+ operator: 'lt',
25404
+ compareValue: 30,
25405
+ color: outcomeThemeDisplayColor('warning', 'lightest'),
25406
+ emphasis: 'medium',
25407
+ icon: 'fa-light fa-triangle-exclamation',
25408
+ },
25409
+ {
25410
+ id: 'bmi-obese',
25411
+ order: 3,
25412
+ operator: 'gte',
25413
+ compareValue: 30,
25414
+ color: outcomeThemeDisplayColor('danger', 'lightest'),
25415
+ emphasis: 'bold',
25416
+ icon: 'fa-light fa-circle-exclamation',
25417
+ },
25418
+ ],
25419
+ },
25420
+ {
25421
+ id: AXPDataGenerator.uuid(),
25422
+ name: 'egfr_mdrd',
25423
+ title: createMultiLanguageString('eGFR (MDRD)', 'eGFR (MDRD)'),
25424
+ description: createMultiLanguageString('MDRD study equation (Scr mg/dL, age years); female multiplier 0.742.', 'معادلهٔ مطالعهٔ MDRD (کراتینین سرم mg/dL، سن به سال); ضریب ۰٫۷۴۲ برای زنان'),
25425
+ resultKind: 'number',
25426
+ expression: "fn.ROUND(175 * (Number(answer.eval('scr_mg_dl')) ** -1.154) * (Number(answer.eval('age_years')) ** -0.203) * (answer.eval('sex') === 'female' ? 0.742 : 1), 1)",
25427
+ displayRules: [
25428
+ {
25429
+ id: 'egfr-kidney-failure',
25430
+ order: 0,
25431
+ operator: 'lt',
25432
+ compareValue: 15,
25433
+ color: outcomeThemeDisplayColor('danger', 'lightest'),
25434
+ emphasis: 'bold',
25435
+ icon: 'fa-light fa-circle-exclamation',
25436
+ },
25437
+ {
25438
+ id: 'egfr-severe',
25439
+ order: 1,
25440
+ operator: 'lt',
25441
+ compareValue: 30,
25442
+ color: outcomeThemeDisplayColor('danger', 'lightest'),
25443
+ emphasis: 'medium',
25444
+ icon: 'fa-light fa-triangle-exclamation',
25445
+ },
25446
+ {
25447
+ id: 'egfr-moderate',
25448
+ order: 2,
25449
+ operator: 'lt',
25450
+ compareValue: 60,
25451
+ color: outcomeThemeDisplayColor('warning', 'lightest'),
25452
+ emphasis: 'medium',
25453
+ icon: 'fa-light fa-triangle-exclamation',
25454
+ },
25455
+ {
25456
+ id: 'egfr-mild',
25457
+ order: 3,
25458
+ operator: 'lt',
25459
+ compareValue: 90,
25460
+ color: outcomeThemeDisplayColor('primary', 'lightest'),
25461
+ emphasis: 'normal',
25462
+ icon: 'fa-light fa-droplet',
25463
+ },
25464
+ {
25465
+ id: 'egfr-normal',
25466
+ order: 4,
25467
+ operator: 'gte',
25468
+ compareValue: 90,
25469
+ color: outcomeThemeDisplayColor('success', 'lightest'),
25470
+ emphasis: 'normal',
25471
+ icon: 'fa-light fa-circle-check',
25472
+ },
25473
+ ],
25474
+ },
25475
+ {
25476
+ id: AXPDataGenerator.uuid(),
25477
+ name: 'bmi_category',
25478
+ title: createMultiLanguageString('BMI category', 'دستهٔ BMI'),
25479
+ description: createMultiLanguageString('WHO-style categories from computed BMI', 'دسته‌بندی سبک سازمان جهانی بهداشت بر اساس BMI محاسبه‌شده'),
25480
+ resultKind: 'string',
25481
+ expression: "fn.IF(!Number.isFinite(Number(outcome.eval('bmi'))), '', Number(outcome.eval('bmi')) < 18.5 ? 'Underweight' : Number(outcome.eval('bmi')) < 25 ? 'Normal' : Number(outcome.eval('bmi')) < 30 ? 'Overweight' : 'Obese')",
25482
+ displayRules: [
25483
+ {
25484
+ id: 'bmi-cat-underweight',
25485
+ order: 0,
25486
+ operator: 'eq',
25487
+ compareValue: 'Underweight',
25488
+ color: outcomeThemeDisplayColor('primary', 'lightest'),
25489
+ emphasis: 'medium',
25490
+ icon: 'fa-light fa-weight-scale',
25491
+ },
25492
+ {
25493
+ id: 'bmi-cat-normal',
25494
+ order: 1,
25495
+ operator: 'eq',
25496
+ compareValue: 'Normal',
25497
+ color: outcomeThemeDisplayColor('success', 'lightest'),
25498
+ emphasis: 'normal',
25499
+ icon: 'fa-light fa-circle-check',
25500
+ },
25501
+ {
25502
+ id: 'bmi-cat-overweight',
25503
+ order: 2,
25504
+ operator: 'eq',
25505
+ compareValue: 'Overweight',
25506
+ color: outcomeThemeDisplayColor('warning', 'lightest'),
25507
+ emphasis: 'medium',
25508
+ icon: 'fa-light fa-triangle-exclamation',
25509
+ },
25510
+ {
25511
+ id: 'bmi-cat-obese',
25512
+ order: 3,
25513
+ operator: 'eq',
25514
+ compareValue: 'Obese',
25515
+ color: outcomeThemeDisplayColor('danger', 'lightest'),
25516
+ emphasis: 'bold',
25517
+ icon: 'fa-light fa-circle-exclamation',
25518
+ },
25519
+ ],
25520
+ },
25521
+ {
25522
+ id: AXPDataGenerator.uuid(),
25523
+ name: 'egfr_category',
25524
+ title: createMultiLanguageString('eGFR category', 'دستهٔ eGFR'),
25525
+ description: createMultiLanguageString('KDIGO-style kidney function stage from computed eGFR (MDRD)', 'مرحلهٔ عملکرد کلیه بر اساس eGFR محاسبه‌شده (MDRD) به سبک KDIGO'),
25526
+ resultKind: 'string',
25527
+ expression: "fn.IF(!Number.isFinite(Number(outcome.eval('egfr_mdrd'))), '', Number(outcome.eval('egfr_mdrd')) >= 90 ? 'Normal' : Number(outcome.eval('egfr_mdrd')) >= 60 ? 'Mildly decreased' : Number(outcome.eval('egfr_mdrd')) >= 30 ? 'Moderately decreased' : Number(outcome.eval('egfr_mdrd')) >= 15 ? 'Severely decreased' : 'Kidney failure')",
25528
+ displayRules: [
25529
+ {
25530
+ id: 'egfr-cat-normal',
25531
+ order: 0,
25532
+ operator: 'eq',
25533
+ compareValue: 'Normal',
25534
+ color: outcomeThemeDisplayColor('success', 'lightest'),
25535
+ emphasis: 'normal',
25536
+ icon: 'fa-light fa-circle-check',
25537
+ },
25538
+ {
25539
+ id: 'egfr-cat-mild',
25540
+ order: 1,
25541
+ operator: 'eq',
25542
+ compareValue: 'Mildly decreased',
25543
+ color: outcomeThemeDisplayColor('primary', 'lightest'),
25544
+ emphasis: 'normal',
25545
+ icon: 'fa-light fa-droplet',
25546
+ },
25547
+ {
25548
+ id: 'egfr-cat-moderate',
25549
+ order: 2,
25550
+ operator: 'eq',
25551
+ compareValue: 'Moderately decreased',
25552
+ color: outcomeThemeDisplayColor('warning', 'lightest'),
25553
+ emphasis: 'medium',
25554
+ icon: 'fa-light fa-triangle-exclamation',
25555
+ },
25556
+ {
25557
+ id: 'egfr-cat-severe',
25558
+ order: 3,
25559
+ operator: 'eq',
25560
+ compareValue: 'Severely decreased',
25561
+ color: outcomeThemeDisplayColor('danger', 'lightest'),
25562
+ emphasis: 'medium',
25563
+ icon: 'fa-light fa-triangle-exclamation',
25564
+ },
25565
+ {
25566
+ id: 'egfr-cat-failure',
25567
+ order: 4,
25568
+ operator: 'eq',
25569
+ compareValue: 'Kidney failure',
25570
+ color: outcomeThemeDisplayColor('danger', 'lightest'),
25571
+ emphasis: 'bold',
25572
+ icon: 'fa-light fa-circle-exclamation',
25573
+ },
25574
+ ],
25575
+ },
25576
+ ];
25577
+ //#endregion
25578
+ //#region ---- Health — Lifestyle index ----
25579
+ const HEALTH_WELLBEING_OUTCOMES = [
25580
+ {
25581
+ id: AXPDataGenerator.uuid(),
25582
+ name: 'wellness_index',
25583
+ title: createMultiLanguageString('Lifestyle index', 'شاخص سبک زندگی'),
25584
+ description: createMultiLanguageString('Weighted 0–100 from sleep, inverse stress, exercise, hydration, energy', 'میانگین وزنی ۰–۱۰۰ از خواب، کاهش استرس، ورزش، آبرسانی و انرژی'),
25585
+ resultKind: 'number',
25586
+ expression: "fn.ROUND((fn.IF(Number(answer.eval('sleep_h')) > 10, 10, Number(answer.eval('sleep_h')))) / 10 * 20 + (6 - Number(answer.eval('stress_lv'))) / 5 * 20 + (fn.IF(Number(answer.eval('exercise_m')) > 300, 300, Number(answer.eval('exercise_m')))) / 300 * 20 + (fn.IF(Number(answer.eval('water_g')) > 12, 12, Number(answer.eval('water_g')))) / 12 * 20 + Number(answer.eval('energy_lv')) / 5 * 20, 0)",
25587
+ },
25588
+ {
25589
+ id: AXPDataGenerator.uuid(),
25590
+ name: 'wellness_band',
25591
+ title: createMultiLanguageString('Lifestyle band', 'باند سبک زندگی'),
25592
+ description: createMultiLanguageString('Interpretation of composite index', 'تفسیر شاخص ترکیبی'),
25593
+ resultKind: 'string',
25594
+ expression: "Number(outcome.eval('wellness_index')) >= 75 ? 'Thriving' : Number(outcome.eval('wellness_index')) >= 50 ? 'Balanced' : 'Plan support'",
25595
+ },
25596
+ ];
25597
+ //#endregion
25598
+
25151
25599
  //#region ---- Imports ----
25152
25600
  //#endregion
25153
25601
  const q$4 = mockQuestionBankItemByName;
@@ -25158,7 +25606,7 @@ const healthWellnessQuestionnaires = [
25158
25606
  {
25159
25607
  id: QUESTIONNAIRE_ID_HEALTH_BMI,
25160
25608
  title: createMultiLanguageString('Occupational health — BMI & eGFR', 'سلامت شغلی — BMI و eGFR'),
25161
- description: createMultiLanguageString('Height, weight, age, sex, and serum creatinine; calculations derive BMI, WHO-style category, and eGFR (MDRD).', 'قد، وزن، سن، جنس و کراتینین سرم؛ محاسبهٔ BMI، دستهٔ سازمان جهانی بهداشت و eGFR (MDRD).'),
25609
+ description: createMultiLanguageString('Height, weight, age, sex, and serum creatinine; outcomes derive BMI, WHO-style category, and eGFR (MDRD).', 'قد، وزن، سن، جنس و کراتینین سرم؛ محاسبهٔ BMI، دستهٔ سازمان جهانی بهداشت و eGFR (MDRD).'),
25162
25610
  type: 'questionnaire',
25163
25611
  categoryIds: [QHW().id],
25164
25612
  categories: [QHW()],
@@ -25172,15 +25620,15 @@ const healthWellnessQuestionnaires = [
25172
25620
  post: {
25173
25621
  reviewEnabled: true,
25174
25622
  summaryEnabled: true,
25175
- showCalculationResults: true,
25623
+ showOutcomeResults: true,
25176
25624
  summaryContent: {
25177
25625
  'en-US': '<p><strong>Summary</strong></p>' +
25178
25626
  '<p>BMI: <strong>{{bmi}}</strong> kg/m² — <strong>{{bmi_category}}</strong></p>' +
25179
- '<p>eGFR (MDRD): <strong>{{egfr_mdrd}}</strong> mL/min/1.73m²</p>' +
25627
+ '<p>eGFR (MDRD): <strong>{{egfr_mdrd}}</strong> mL/min/1.73m² — <strong>{{egfr_category}}</strong></p>' +
25180
25628
  '<p>Questions answered: <strong>{{answeredCount}}</strong> / <strong>{{totalQuestions}}</strong></p>',
25181
25629
  'fa-IR': '<p><strong>خلاصه</strong></p>' +
25182
25630
  '<p>BMI: <strong>{{bmi}}</strong> — <strong>{{bmi_category}}</strong></p>' +
25183
- '<p>eGFR (MDRD): <strong>{{egfr_mdrd}}</strong></p>',
25631
+ '<p>eGFR (MDRD): <strong>{{egfr_mdrd}}</strong> — <strong>{{egfr_category}}</strong></p>',
25184
25632
  },
25185
25633
  },
25186
25634
  display: {
@@ -25215,6 +25663,7 @@ const healthWellnessQuestionnaires = [
25215
25663
  },
25216
25664
  ],
25217
25665
  },
25666
+ outcomes: createQuestionnaireOutcomesSection(HEALTH_BMI_OUTCOMES),
25218
25667
  scoringType: 'none',
25219
25668
  timeLimit: 1200,
25220
25669
  allowPause: true,
@@ -25241,7 +25690,7 @@ const healthWellnessQuestionnaires = [
25241
25690
  post: {
25242
25691
  reviewEnabled: true,
25243
25692
  summaryEnabled: true,
25244
- showCalculationResults: true,
25693
+ showOutcomeResults: true,
25245
25694
  summaryContent: {
25246
25695
  'en-US': '<p><strong>Summary</strong></p>' +
25247
25696
  '<p>Lifestyle index: <strong>{{wellness_index}}</strong> / 100</p>' +
@@ -25297,6 +25746,7 @@ const healthWellnessQuestionnaires = [
25297
25746
  },
25298
25747
  ],
25299
25748
  },
25749
+ outcomes: createQuestionnaireOutcomesSection(HEALTH_WELLBEING_OUTCOMES),
25300
25750
  scoringType: 'none',
25301
25751
  timeLimit: 900,
25302
25752
  allowPause: true,
@@ -25309,10 +25759,256 @@ const healthWellnessQuestionnaires = [
25309
25759
  ];
25310
25760
  //#endregion
25311
25761
 
25762
+ //#region ---- Imports ----
25763
+ //#endregion
25764
+ //#region ---- Checklist expression helpers ----
25765
+ const hrInductionIntroKeys = ['hr_induction_welcome_workers', 'hr_induction_nature_structure_company'];
25766
+ const hrInductionEmploymentKeys = [
25767
+ 'hr_induction_job_description_responsibilities',
25768
+ 'hr_induction_award_workplace_agreement',
25769
+ 'hr_induction_work_times_meal_breaks',
25770
+ 'hr_induction_time_recording_procedures',
25771
+ 'hr_induction_leave_entitlements',
25772
+ 'hr_induction_sick_leave_notification',
25773
+ ];
25774
+ const hrInductionPayrollKeys = [
25775
+ 'hr_induction_pay_rates_allowances',
25776
+ 'hr_induction_pay_arrangement',
25777
+ 'hr_induction_date_next_pay',
25778
+ 'hr_induction_taxation_forms',
25779
+ 'hr_induction_superannuation_deductions',
25780
+ ];
25781
+ const hrInductionWorkplaceKeys = [
25782
+ 'hr_induction_wash_toilet_facilities',
25783
+ 'hr_induction_kitchen_lunch_room',
25784
+ 'hr_induction_first_aid_facilities',
25785
+ 'hr_induction_emergency_exits',
25786
+ 'hr_induction_fire_warden_contact',
25787
+ 'hr_induction_first_aider_contact',
25788
+ 'hr_induction_car_parking',
25789
+ ];
25790
+ const hrInductionWhsKeys = [
25791
+ 'hr_induction_safetyminder_app',
25792
+ 'hr_induction_whs_policy',
25793
+ 'hr_induction_whs_roles',
25794
+ 'hr_induction_whs_consultation',
25795
+ 'hr_induction_issue_resolution',
25796
+ 'hr_induction_emergency_plan',
25797
+ 'hr_induction_first_aid_arrangements',
25798
+ 'hr_induction_incident_injury_reporting',
25799
+ 'hr_induction_discrimination_bullying_harassment',
25800
+ 'hr_induction_drugs_alcohol',
25801
+ ];
25802
+ const hrInductionSecurityKeys = [
25803
+ 'hr_induction_building_work_site',
25804
+ 'hr_induction_personal_belongings',
25805
+ 'hr_induction_petty_cash',
25806
+ 'hr_induction_computer_password',
25807
+ ];
25808
+ const hrInductionTrainingKeys = [
25809
+ 'hr_induction_training_certificates_safetyminder',
25810
+ 'hr_induction_on_job_training',
25811
+ 'hr_induction_work_specific_hazards_training',
25812
+ ];
25813
+ const hrInductionAllKeys = [
25814
+ ...hrInductionIntroKeys,
25815
+ ...hrInductionEmploymentKeys,
25816
+ ...hrInductionPayrollKeys,
25817
+ ...hrInductionWorkplaceKeys,
25818
+ ...hrInductionWhsKeys,
25819
+ ...hrInductionSecurityKeys,
25820
+ ...hrInductionTrainingKeys,
25821
+ ];
25822
+ const hrSeparationKeys = [
25823
+ 'hr_separation_service_reports_invoices',
25824
+ 'hr_separation_last_timesheet_petty_cash',
25825
+ 'hr_separation_service_report_books',
25826
+ 'hr_separation_company_phone',
25827
+ 'hr_separation_workshop_client_keys',
25828
+ 'hr_separation_company_vehicle',
25829
+ 'hr_separation_fuel_card',
25830
+ 'hr_separation_first_aid_fire_extinguisher',
25831
+ 'hr_separation_company_store_cards',
25832
+ 'hr_separation_no_outstanding_repayments',
25833
+ 'hr_separation_rdos_in_credit',
25834
+ 'hr_separation_company_tools',
25835
+ 'hr_separation_security_passes',
25836
+ 'hr_separation_petty_cash_returned',
25837
+ ];
25838
+ const completedCountExpr = (keys) => `fn.SUM(${keys.map((k) => `(answer.eval('${k}') === true ? 1 : 0)`).join(', ')})`;
25839
+ const openCountExpr = (keys) => `fn.SUM(${keys.map((k) => `(answer.eval('${k}') !== true ? 1 : 0)`).join(', ')})`;
25840
+ const HR_INDUCTION_COMPLETED_COUNT_EXPR = completedCountExpr(hrInductionAllKeys);
25841
+ const HR_INDUCTION_OPEN_COUNT_EXPR = openCountExpr(hrInductionAllKeys);
25842
+ const HR_SEPARATION_COMPLETED_COUNT_EXPR = completedCountExpr(hrSeparationKeys);
25843
+ const HR_SEPARATION_OPEN_COUNT_EXPR = openCountExpr(hrSeparationKeys);
25844
+ //#endregion
25845
+ //#region ---- Organization HR — Employee induction ----
25846
+ const HR_INDUCTION_OUTCOMES = [
25847
+ {
25848
+ id: AXPDataGenerator.uuid(),
25849
+ name: 'hr_induction_completed_count',
25850
+ title: createMultiLanguageString('Topics completed', 'موضوعات تکمیل‌شده'),
25851
+ description: createMultiLanguageString('Checklist rows marked completed', 'سطرهای چک‌لیست علامت‌خورده به‌عنوان تکمیل‌شده'),
25852
+ resultKind: 'number',
25853
+ expression: HR_INDUCTION_COMPLETED_COUNT_EXPR,
25854
+ },
25855
+ {
25856
+ id: AXPDataGenerator.uuid(),
25857
+ name: 'hr_induction_open_count',
25858
+ title: createMultiLanguageString('Topics still open', 'موضوعات بازمانده'),
25859
+ description: createMultiLanguageString('Rows not yet marked completed', 'سطرهایی که هنوز تکمیل نشده‌اند'),
25860
+ resultKind: 'number',
25861
+ expression: HR_INDUCTION_OPEN_COUNT_EXPR,
25862
+ },
25863
+ {
25864
+ id: AXPDataGenerator.uuid(),
25865
+ name: 'hr_induction_completion_percent',
25866
+ title: createMultiLanguageString('Completion (%)', 'درصد تکمیل'),
25867
+ description: createMultiLanguageString('0–100 from 37 induction topics', '۰–۱۰۰ از ۳۷ موضوع آشنایی'),
25868
+ resultKind: 'number',
25869
+ expression: "fn.ROUND(Number(outcome.eval('hr_induction_completed_count')) / 37 * 100, 0)",
25870
+ displayRules: [
25871
+ {
25872
+ id: 'hr-induction-pct-low',
25873
+ order: 0,
25874
+ operator: 'lt',
25875
+ compareValue: 50,
25876
+ color: outcomeThemeDisplayColor('danger', 'lightest'),
25877
+ emphasis: 'bold',
25878
+ icon: 'fa-light fa-circle-exclamation',
25879
+ },
25880
+ {
25881
+ id: 'hr-induction-pct-mid',
25882
+ order: 1,
25883
+ operator: 'lt',
25884
+ compareValue: 100,
25885
+ color: outcomeThemeDisplayColor('warning', 'lightest'),
25886
+ emphasis: 'medium',
25887
+ icon: 'fa-light fa-triangle-exclamation',
25888
+ },
25889
+ {
25890
+ id: 'hr-induction-pct-done',
25891
+ order: 2,
25892
+ operator: 'gte',
25893
+ compareValue: 100,
25894
+ color: outcomeThemeDisplayColor('success', 'lightest'),
25895
+ emphasis: 'normal',
25896
+ icon: 'fa-light fa-circle-check',
25897
+ },
25898
+ ],
25899
+ },
25900
+ {
25901
+ id: AXPDataGenerator.uuid(),
25902
+ name: 'hr_induction_completion_band',
25903
+ title: createMultiLanguageString('Completion band', 'باند تکمیل'),
25904
+ description: createMultiLanguageString('Traffic-light summary for induction progress', 'خلاصه چراغ راهنمایی برای پیشرفت آشنایی'),
25905
+ resultKind: 'string',
25906
+ expression: "Number(outcome.eval('hr_induction_completion_percent')) >= 100 ? 'Complete — induction covered' : Number(outcome.eval('hr_induction_completion_percent')) >= 75 ? 'Nearly complete — finish remaining topics' : Number(outcome.eval('hr_induction_completion_percent')) >= 40 ? 'In progress — continue section by section' : 'Just started — schedule induction sessions'",
25907
+ },
25908
+ {
25909
+ id: AXPDataGenerator.uuid(),
25910
+ name: 'hr_induction_focus_message',
25911
+ title: createMultiLanguageString('Focus message', 'پیام تمرکز'),
25912
+ description: createMultiLanguageString('Which section to address next', 'کدام بخش را بعداً رسیدگی کنید'),
25913
+ resultKind: 'string',
25914
+ expression: `Number(outcome.eval('hr_induction_completion_percent')) >= 100 ? 'Induction checklist complete — file with HR' : ${openCountExpr(hrInductionIntroKeys)} > 0 ? 'Finish Introduction topics first' : ${openCountExpr(hrInductionEmploymentKeys)} > 0 ? 'Complete Employment Conditions' : ${openCountExpr(hrInductionPayrollKeys)} > 0 ? 'Complete Payroll topics' : ${openCountExpr(hrInductionWorkplaceKeys)} > 0 ? 'Complete General Workplace information' : ${openCountExpr(hrInductionWhsKeys)} > 0 ? 'Complete Health and Safety topics' : ${openCountExpr(hrInductionSecurityKeys)} > 0 ? 'Complete Security topics' : ${openCountExpr(hrInductionTrainingKeys)} > 0 ? 'Complete Training topics' : 'Review any optional comments before sign-off'`,
25915
+ },
25916
+ {
25917
+ id: AXPDataGenerator.uuid(),
25918
+ name: 'hr_induction_all_complete',
25919
+ title: createMultiLanguageString('All topics complete', 'همهٔ موضوعات تکمیل'),
25920
+ description: createMultiLanguageString('True when every induction row is checked', 'وقتی همهٔ سطرهای آشنایی تیک خورده باشد برابر true است'),
25921
+ resultKind: 'boolean',
25922
+ expression: "Number(outcome.eval('hr_induction_completed_count')) === 37",
25923
+ },
25924
+ ];
25925
+ //#endregion
25926
+ //#region ---- Organization HR — Employee separation ----
25927
+ const HR_SEPARATION_OUTCOMES = [
25928
+ {
25929
+ id: AXPDataGenerator.uuid(),
25930
+ name: 'hr_separation_completed_count',
25931
+ title: createMultiLanguageString('Items completed', 'موارد تکمیل‌شده'),
25932
+ description: createMultiLanguageString('Offboarding rows marked completed', 'سطرهای خروج علامت‌خورده به‌عنوان تکمیل‌شده'),
25933
+ resultKind: 'number',
25934
+ expression: HR_SEPARATION_COMPLETED_COUNT_EXPR,
25935
+ },
25936
+ {
25937
+ id: AXPDataGenerator.uuid(),
25938
+ name: 'hr_separation_open_count',
25939
+ title: createMultiLanguageString('Items still open', 'موارد بازمانده'),
25940
+ description: createMultiLanguageString('Rows not yet marked completed', 'سطرهایی که هنوز تکمیل نشده‌اند'),
25941
+ resultKind: 'number',
25942
+ expression: HR_SEPARATION_OPEN_COUNT_EXPR,
25943
+ },
25944
+ {
25945
+ id: AXPDataGenerator.uuid(),
25946
+ name: 'hr_separation_completion_percent',
25947
+ title: createMultiLanguageString('Completion (%)', 'درصد تکمیل'),
25948
+ description: createMultiLanguageString('0–100 from 14 separation checklist items', '۰–۱۰۰ از ۱۴ مورد چک‌لیست جدایی'),
25949
+ resultKind: 'number',
25950
+ expression: "fn.ROUND(Number(outcome.eval('hr_separation_completed_count')) / 14 * 100, 0)",
25951
+ displayRules: [
25952
+ {
25953
+ id: 'hr-separation-pct-low',
25954
+ order: 0,
25955
+ operator: 'lt',
25956
+ compareValue: 50,
25957
+ color: outcomeThemeDisplayColor('danger', 'lightest'),
25958
+ emphasis: 'bold',
25959
+ icon: 'fa-light fa-circle-exclamation',
25960
+ },
25961
+ {
25962
+ id: 'hr-separation-pct-mid',
25963
+ order: 1,
25964
+ operator: 'lt',
25965
+ compareValue: 100,
25966
+ color: outcomeThemeDisplayColor('warning', 'lightest'),
25967
+ emphasis: 'medium',
25968
+ icon: 'fa-light fa-triangle-exclamation',
25969
+ },
25970
+ {
25971
+ id: 'hr-separation-pct-done',
25972
+ order: 2,
25973
+ operator: 'gte',
25974
+ compareValue: 100,
25975
+ color: outcomeThemeDisplayColor('success', 'lightest'),
25976
+ emphasis: 'normal',
25977
+ icon: 'fa-light fa-circle-check',
25978
+ },
25979
+ ],
25980
+ },
25981
+ {
25982
+ id: AXPDataGenerator.uuid(),
25983
+ name: 'hr_separation_completion_band',
25984
+ title: createMultiLanguageString('Completion band', 'باند تکمیل'),
25985
+ description: createMultiLanguageString('Traffic-light summary for offboarding progress', 'خلاصه چراغ راهنمایی برای پیشرفت خروج'),
25986
+ resultKind: 'string',
25987
+ expression: "Number(outcome.eval('hr_separation_completion_percent')) >= 100 ? 'Complete — ready for final payroll' : Number(outcome.eval('hr_separation_completion_percent')) >= 75 ? 'Nearly complete — confirm remaining returns' : Number(outcome.eval('hr_separation_completion_percent')) >= 40 ? 'In progress — chase outstanding assets' : 'Just started — assign owner per line'",
25988
+ },
25989
+ {
25990
+ id: AXPDataGenerator.uuid(),
25991
+ name: 'hr_separation_focus_message',
25992
+ title: createMultiLanguageString('Focus message', 'پیام تمرکز'),
25993
+ description: createMultiLanguageString('Short guidance for remaining offboarding work', 'راهنمای کوتاه برای کارهای باقی‌ماندهٔ خروج'),
25994
+ resultKind: 'string',
25995
+ expression: "Number(outcome.eval('hr_separation_completion_percent')) >= 100 ? 'Separation checklist complete — proceed to exit interview' : Number(outcome.eval('hr_separation_open_count')) > 5 ? 'Prioritize asset returns and finance clearances' : Number(outcome.eval('hr_separation_open_count')) > 0 ? 'Complete remaining checklist rows and note N/A in comments' : 'Review comments and manager sign-off'",
25996
+ },
25997
+ {
25998
+ id: AXPDataGenerator.uuid(),
25999
+ name: 'hr_separation_all_complete',
26000
+ title: createMultiLanguageString('All items complete', 'همهٔ موارد تکمیل'),
26001
+ description: createMultiLanguageString('True when every separation row is checked', 'وقتی همهٔ سطرهای جدایی تیک خورده باشد برابر true است'),
26002
+ resultKind: 'boolean',
26003
+ expression: "Number(outcome.eval('hr_separation_completed_count')) === 14",
26004
+ },
26005
+ ];
26006
+ //#endregion
26007
+
25312
26008
  //#region ---- Imports ----
25313
26009
  //#endregion
25314
26010
  const q$3 = mockQuestionBankItemByName;
25315
- /** Stable id for mock calculations and automations that reference this questionnaire. */
26011
+ /** Stable id for mock outcomes and automations that reference this questionnaire. */
25316
26012
  const QUESTIONNAIRE_ID_EMPLOYEE_SEPARATION_CHECKLIST = AXPDataGenerator.uuid();
25317
26013
  //#region ---- Mock Data ----
25318
26014
  const employeeSeparationQuestionnaires = [
@@ -25328,8 +26024,20 @@ const employeeSeparationQuestionnaires = [
25328
26024
  },
25329
26025
  post: {
25330
26026
  reviewEnabled: false,
25331
- summaryEnabled: false,
25332
- showCalculationResults: false,
26027
+ summaryEnabled: true,
26028
+ showOutcomeResults: true,
26029
+ summaryContent: {
26030
+ 'en-US': '<p><strong>Separation summary</strong></p>' +
26031
+ '<p>Completion: <strong>{{hr_separation_completion_percent}}</strong>% — <strong>{{hr_separation_completion_band}}</strong></p>' +
26032
+ '<p>Items completed: <strong>{{hr_separation_completed_count}}</strong> / 14 · Still open: <strong>{{hr_separation_open_count}}</strong></p>' +
26033
+ '<p><strong>Focus:</strong> {{hr_separation_focus_message}}</p>' +
26034
+ '<p>Answered <strong>{{answeredCount}}</strong> / <strong>{{totalQuestions}}</strong></p>',
26035
+ 'fa-IR': '<p><strong>خلاصه جدایی</strong></p>' +
26036
+ '<p>تکمیل: <strong>{{hr_separation_completion_percent}}</strong>٪ — <strong>{{hr_separation_completion_band}}</strong></p>' +
26037
+ '<p>موارد تکمیل‌شده: <strong>{{hr_separation_completed_count}}</strong> / ۱۴ · بازمانده: <strong>{{hr_separation_open_count}}</strong></p>' +
26038
+ '<p><strong>تمرکز:</strong> {{hr_separation_focus_message}}</p>' +
26039
+ '<p>پاسخ‌داده‌شده <strong>{{answeredCount}}</strong> / <strong>{{totalQuestions}}</strong></p>',
26040
+ },
25333
26041
  },
25334
26042
  display: {
25335
26043
  viewMode: 'single-page',
@@ -25421,6 +26129,7 @@ const employeeSeparationQuestionnaires = [
25421
26129
  },
25422
26130
  ],
25423
26131
  },
26132
+ outcomes: createQuestionnaireOutcomesSection(HR_SEPARATION_OUTCOMES),
25424
26133
  scoringType: 'none',
25425
26134
  timeLimit: 3600,
25426
26135
  allowPause: true,
@@ -25436,7 +26145,7 @@ const employeeSeparationQuestionnaires = [
25436
26145
  //#region ---- Imports ----
25437
26146
  //#endregion
25438
26147
  const q$2 = mockQuestionBankItemByName;
25439
- /** Stable id for mock calculations and automations that reference this questionnaire. */
26148
+ /** Stable id for mock outcomes and automations that reference this questionnaire. */
25440
26149
  const QUESTIONNAIRE_ID_HR_EMPLOYEE_INDUCTION = AXPDataGenerator.uuid();
25441
26150
  //#region ---- Mock Data ----
25442
26151
  const organizationHrQuestionnaires = [
@@ -25452,8 +26161,20 @@ const organizationHrQuestionnaires = [
25452
26161
  },
25453
26162
  post: {
25454
26163
  reviewEnabled: false,
25455
- summaryEnabled: false,
25456
- showCalculationResults: false,
26164
+ summaryEnabled: true,
26165
+ showOutcomeResults: true,
26166
+ summaryContent: {
26167
+ 'en-US': '<p><strong>Induction summary</strong></p>' +
26168
+ '<p>Completion: <strong>{{hr_induction_completion_percent}}</strong>% — <strong>{{hr_induction_completion_band}}</strong></p>' +
26169
+ '<p>Topics completed: <strong>{{hr_induction_completed_count}}</strong> / 37 · Still open: <strong>{{hr_induction_open_count}}</strong></p>' +
26170
+ '<p><strong>Focus:</strong> {{hr_induction_focus_message}}</p>' +
26171
+ '<p>Answered <strong>{{answeredCount}}</strong> / <strong>{{totalQuestions}}</strong></p>',
26172
+ 'fa-IR': '<p><strong>خلاصه آشنایی</strong></p>' +
26173
+ '<p>تکمیل: <strong>{{hr_induction_completion_percent}}</strong>٪ — <strong>{{hr_induction_completion_band}}</strong></p>' +
26174
+ '<p>موضوعات تکمیل‌شده: <strong>{{hr_induction_completed_count}}</strong> / ۳۷ · بازمانده: <strong>{{hr_induction_open_count}}</strong></p>' +
26175
+ '<p><strong>تمرکز:</strong> {{hr_induction_focus_message}}</p>' +
26176
+ '<p>پاسخ‌داده‌شده <strong>{{answeredCount}}</strong> / <strong>{{totalQuestions}}</strong></p>',
26177
+ },
25457
26178
  },
25458
26179
  display: {
25459
26180
  viewMode: 'side-menu',
@@ -25708,6 +26429,7 @@ const organizationHrQuestionnaires = [
25708
26429
  },
25709
26430
  ],
25710
26431
  },
26432
+ outcomes: createQuestionnaireOutcomesSection(HR_INDUCTION_OUTCOMES),
25711
26433
  scoringType: 'none',
25712
26434
  timeLimit: 3600,
25713
26435
  allowPause: true,
@@ -25720,6 +26442,47 @@ const organizationHrQuestionnaires = [
25720
26442
  ];
25721
26443
  //#endregion
25722
26444
 
26445
+ //#region ---- Imports ----
26446
+ //#endregion
26447
+ //#region ---- Plant — Work order ----
26448
+ const PM_WORK_ORDER_OUTCOMES = [
26449
+ {
26450
+ id: AXPDataGenerator.uuid(),
26451
+ name: 'maint_backlog_priority',
26452
+ title: createMultiLanguageString('Backlog priority score', 'امتیاز اولویت انباشت کار'),
26453
+ description: createMultiLanguageString('Downtime × quality gap × LOTO factor', 'زمان توقف × شکاف کیفیت × ضریب LOTO'),
26454
+ resultKind: 'number',
26455
+ expression: "fn.ROUND(Number(answer.eval('maint_downtime_h')) * (6 - Number(answer.eval('maint_pm_quality'))) * (answer.eval('maint_loto') === 'yes' ? 1 : 1.5), 0)",
26456
+ },
26457
+ {
26458
+ id: AXPDataGenerator.uuid(),
26459
+ name: 'maint_backlog_tier',
26460
+ title: createMultiLanguageString('Backlog tier', 'سطح انباشت کار'),
26461
+ resultKind: 'string',
26462
+ expression: "Number(outcome.eval('maint_backlog_priority')) > 80 ? 'Escalate' : Number(outcome.eval('maint_backlog_priority')) > 25 ? 'Plan work' : 'Monitor'",
26463
+ },
26464
+ ];
26465
+ //#endregion
26466
+ //#region ---- Plant — Spares ----
26467
+ const PM_SPARES_OUTCOMES = [
26468
+ {
26469
+ id: AXPDataGenerator.uuid(),
26470
+ name: 'maint_logistics_risk',
26471
+ title: createMultiLanguageString('Logistics risk score', 'امتیاز ریسک تدارکات'),
26472
+ description: createMultiLanguageString('MTTR weighted when spares are not assured', 'MTTR وزن‌دار وقتی یدکی تضمین نشده است'),
26473
+ resultKind: 'number',
26474
+ expression: "fn.ROUND(Number(answer.eval('maint_mttr_h')) * (answer.eval('maint_spare_ok') === 'yes' ? 1 : 2.2), 0)",
26475
+ },
26476
+ {
26477
+ id: AXPDataGenerator.uuid(),
26478
+ name: 'maint_logistics_followup',
26479
+ title: createMultiLanguageString('Logistics follow-up', 'پیگیری تدارکات'),
26480
+ resultKind: 'string',
26481
+ expression: "Number(outcome.eval('maint_logistics_risk')) > 50 ? 'Source spares or expedite' : 'Monitor'",
26482
+ },
26483
+ ];
26484
+ //#endregion
26485
+
25723
26486
  //#region ---- Imports ----
25724
26487
  //#endregion
25725
26488
  const q$1 = mockQuestionBankItemByName;
@@ -25750,7 +26513,7 @@ const plantMaintenanceQuestionnaires = [
25750
26513
  post: {
25751
26514
  reviewEnabled: false,
25752
26515
  summaryEnabled: true,
25753
- showCalculationResults: true,
26516
+ showOutcomeResults: true,
25754
26517
  summaryContent: {
25755
26518
  'en-US': '<p><strong>Summary</strong></p>' +
25756
26519
  '<p>Backlog priority score: <strong>{{maint_backlog_priority}}</strong></p>' +
@@ -25811,6 +26574,7 @@ const plantMaintenanceQuestionnaires = [
25811
26574
  },
25812
26575
  ],
25813
26576
  },
26577
+ outcomes: createQuestionnaireOutcomesSection(PM_WORK_ORDER_OUTCOMES),
25814
26578
  scoringType: 'none',
25815
26579
  timeLimit: 900,
25816
26580
  allowPause: true,
@@ -25830,7 +26594,7 @@ const plantMaintenanceQuestionnaires = [
25830
26594
  post: {
25831
26595
  reviewEnabled: false,
25832
26596
  summaryEnabled: true,
25833
- showCalculationResults: true,
26597
+ showOutcomeResults: true,
25834
26598
  summaryContent: {
25835
26599
  'en-US': '<p><strong>Summary</strong></p>' +
25836
26600
  '<p>Logistics risk score: <strong>{{maint_logistics_risk}}</strong></p>' +
@@ -25879,6 +26643,7 @@ const plantMaintenanceQuestionnaires = [
25879
26643
  },
25880
26644
  ],
25881
26645
  },
26646
+ outcomes: createQuestionnaireOutcomesSection(PM_SPARES_OUTCOMES),
25882
26647
  scoringType: 'none',
25883
26648
  timeLimit: 600,
25884
26649
  allowPause: true,
@@ -25902,7 +26667,7 @@ const plantMaintenanceQuestionnaires = [
25902
26667
  post: {
25903
26668
  reviewEnabled: true,
25904
26669
  summaryEnabled: true,
25905
- showCalculationResults: false,
26670
+ showOutcomeResults: false,
25906
26671
  summaryContent: {
25907
26672
  'en-US': '<p><strong>Summary</strong></p>' +
25908
26673
  '<p>Answered <strong>{{answeredCount}}</strong> / <strong>{{totalQuestions}}</strong></p>',
@@ -26037,6 +26802,135 @@ const plantMaintenanceQuestionnaires = [
26037
26802
  ];
26038
26803
  //#endregion
26039
26804
 
26805
+ //#region ---- Imports ----
26806
+ //#endregion
26807
+ //#region ---- Take 5 checklist expressions ----
26808
+ const take5S1Keys = Array.from({ length: 9 }, (_, i) => `take5_1_${String(i + 1).padStart(2, '0')}`);
26809
+ const take5S2Keys = Array.from({ length: 9 }, (_, i) => `take5_2_${String(i + 1).padStart(2, '0')}`);
26810
+ const take5S3Keys = Array.from({ length: 8 }, (_, i) => `take5_3_${String(i + 1).padStart(2, '0')}`);
26811
+ /** Section 1: “no” = gap in pre-task readiness. */
26812
+ const TAKE5_PREP_GAP_COUNT_EXPR = `fn.SUM(${take5S1Keys.map((k) => `(answer.eval('${k}') === 'no' ? 1 : 0)`).join(', ')})`;
26813
+ /** Section 2: “yes” = hazard / exposure flagged. */
26814
+ const TAKE5_HAZARD_YES_COUNT_EXPR = `fn.SUM(${take5S2Keys.map((k) => `(answer.eval('${k}') === 'yes' ? 1 : 0)`).join(', ')})`;
26815
+ /** Section 3: “yes” = that permit type is required for this job. */
26816
+ const TAKE5_PERMIT_YES_COUNT_EXPR = `fn.SUM(${take5S3Keys.map((k) => `(answer.eval('${k}') === 'yes' ? 1 : 0)`).join(', ')})`;
26817
+ /** Favourable answers: S1 & S4 yes; S2 & S3 no (matches paper Take 5 polarity). */
26818
+ const TAKE5_FAVOURABLE_COUNT_EXPR = `fn.SUM(${[
26819
+ ...take5S1Keys.map((k) => `(answer.eval('${k}') === 'yes' ? 1 : 0)`),
26820
+ ...take5S2Keys.map((k) => `(answer.eval('${k}') === 'no' ? 1 : 0)`),
26821
+ ...take5S3Keys.map((k) => `(answer.eval('${k}') === 'no' ? 1 : 0)`),
26822
+ `(answer.eval('take5_4_01') === 'yes' ? 1 : 0)`,
26823
+ ].join(', ')})`;
26824
+ //#endregion
26825
+ //#region ---- Workplace Safety — Hazard ----
26826
+ const WS_HAZARD_OUTCOMES = [
26827
+ {
26828
+ id: AXPDataGenerator.uuid(),
26829
+ name: 'risk_points',
26830
+ title: createMultiLanguageString('Risk points', 'امتیاز ریسک'),
26831
+ description: createMultiLanguageString('People × days open × severity (1–5)', 'نفر × روزهای باز × شدت (۱–۵)'),
26832
+ resultKind: 'number',
26833
+ expression: "fn.ROUND(Number(answer.eval('exp_people')) * Number(answer.eval('exp_days')) * Number(answer.eval('sev')), 0)",
26834
+ },
26835
+ {
26836
+ id: AXPDataGenerator.uuid(),
26837
+ name: 'risk_priority',
26838
+ title: createMultiLanguageString('Action priority', 'اولویت اقدام'),
26839
+ description: createMultiLanguageString('Tiered follow-up from risk points', 'پیگیری چندلایه بر اساس امتیاز ریسک'),
26840
+ resultKind: 'string',
26841
+ expression: "Number(outcome.eval('risk_points')) > 100 ? 'Escalate immediately' : Number(outcome.eval('risk_points')) > 30 ? 'Schedule control' : 'Monitor'",
26842
+ },
26843
+ ];
26844
+ //#endregion
26845
+ //#region ---- Workplace Safety — PPE ----
26846
+ const WS_PPE_OUTCOMES = [
26847
+ {
26848
+ id: AXPDataGenerator.uuid(),
26849
+ name: 'ppe_compliance_score',
26850
+ title: createMultiLanguageString('PPE compliance score', 'امتیاز رعایت تجهیزات حفاظت فردی'),
26851
+ description: createMultiLanguageString('100 when PPE adequate; reduced when not', '۱۰۰ وقتی تجهیزات کافی است؛ در غیر این صورت کاهش می‌یابد'),
26852
+ resultKind: 'number',
26853
+ expression: "fn.ROUND(answer.eval('whs_ppe_ok') === 'yes' ? 100 : 35, 0)",
26854
+ },
26855
+ {
26856
+ id: AXPDataGenerator.uuid(),
26857
+ name: 'ppe_compliance_band',
26858
+ title: createMultiLanguageString('PPE band', 'باند تجهیزات حفاظت فردی'),
26859
+ description: createMultiLanguageString('Traffic-light style', 'سبک چراغ راهنمایی (قرمز/زرد/سبز)'),
26860
+ resultKind: 'string',
26861
+ expression: "Number(outcome.eval('ppe_compliance_score')) >= 80 ? 'Green' : Number(outcome.eval('ppe_compliance_score')) >= 50 ? 'Amber' : 'Red'",
26862
+ },
26863
+ ];
26864
+ //#endregion
26865
+ //#region ---- Workplace Safety — Take 5 Checklist ----
26866
+ const WS_TAKE5_OUTCOMES = [
26867
+ {
26868
+ id: AXPDataGenerator.uuid(),
26869
+ name: 'take5_prep_gap_count',
26870
+ title: createMultiLanguageString('Pre-task gaps (section 1)', 'شکاف‌های پیش از کار (بخش ۱)'),
26871
+ description: createMultiLanguageString('Count of section 1 answers that are “No” (readiness gap).', 'تعداد پاسخ‌های «خیر» در بخش ۱ (شکاف آمادگی).'),
26872
+ resultKind: 'number',
26873
+ expression: TAKE5_PREP_GAP_COUNT_EXPR,
26874
+ },
26875
+ {
26876
+ id: AXPDataGenerator.uuid(),
26877
+ name: 'take5_hazard_yes_count',
26878
+ title: createMultiLanguageString('Hazards flagged (section 2)', 'خطرهای علامت‌خورده (بخش ۲)'),
26879
+ description: createMultiLanguageString('Count of section 2 answers that are “Yes” (hazard or exposure applies).', 'تعداد پاسخ‌های «بله» در بخش ۲ (وجود خطر یا قرارگیری).'),
26880
+ resultKind: 'number',
26881
+ expression: TAKE5_HAZARD_YES_COUNT_EXPR,
26882
+ },
26883
+ {
26884
+ id: AXPDataGenerator.uuid(),
26885
+ name: 'take5_permit_yes_count',
26886
+ title: createMultiLanguageString('Permit types required (section 3)', 'انواع مجوز لازم (بخش ۳)'),
26887
+ description: createMultiLanguageString('Count of section 3 answers that are “Yes” (that permit pathway applies).', 'تعداد پاسخ‌های «بله» در بخش ۳ (مسیر مجوز مربوطه اعمال می‌شود).'),
26888
+ resultKind: 'number',
26889
+ expression: TAKE5_PERMIT_YES_COUNT_EXPR,
26890
+ },
26891
+ {
26892
+ id: AXPDataGenerator.uuid(),
26893
+ name: 'take5_favourable_count',
26894
+ title: createMultiLanguageString('Favourable answers (0–27)', 'پاسخ‌های مطلوب (۰–۲۷)'),
26895
+ description: createMultiLanguageString('Answers that match Take 5 “safe” polarity for each section.', 'پاسخ‌هایی که با قطبش «ایمن» فرم Take 5 برای هر بخش هم‌خوان است.'),
26896
+ resultKind: 'number',
26897
+ expression: TAKE5_FAVOURABLE_COUNT_EXPR,
26898
+ },
26899
+ {
26900
+ id: AXPDataGenerator.uuid(),
26901
+ name: 'take5_readiness_score',
26902
+ title: createMultiLanguageString('Readiness score', 'امتیاز آمادگی'),
26903
+ description: createMultiLanguageString('0–100 from favourable answers (27 questions, equal weight).', '۰–۱۰۰ از پاسخ‌های مطلوب (۲۷ سؤال، وزن یکسان).'),
26904
+ resultKind: 'number',
26905
+ expression: "fn.ROUND(Number(outcome.eval('take5_favourable_count')) / 27 * 100, 0)",
26906
+ },
26907
+ {
26908
+ id: AXPDataGenerator.uuid(),
26909
+ name: 'take5_readiness_band',
26910
+ title: createMultiLanguageString('Readiness band', 'باند آمادگی'),
26911
+ description: createMultiLanguageString('Traffic-light summary from readiness score.', 'خلاصه چراغ راهنمایی از امتیاز آمادگی.'),
26912
+ resultKind: 'string',
26913
+ expression: "Number(outcome.eval('take5_readiness_score')) >= 100 ? 'Green — all checks favourable' : Number(outcome.eval('take5_readiness_score')) >= 85 ? 'Amber — review gaps' : 'Red — stop and reassess'",
26914
+ },
26915
+ {
26916
+ id: AXPDataGenerator.uuid(),
26917
+ name: 'take5_focus_message',
26918
+ title: createMultiLanguageString('Focus message', 'پیام تمرکز'),
26919
+ description: createMultiLanguageString('Short guidance: which section to address first.', 'راهنمای کوتاه: کدام بخش را اول رسیدگی کنید.'),
26920
+ resultKind: 'string',
26921
+ expression: "Number(outcome.eval('take5_prep_gap_count')) > 0 ? 'Address section 1 pre-task gaps before starting' : Number(outcome.eval('take5_hazard_yes_count')) > 0 ? 'Control section 2 hazards before work' : Number(outcome.eval('take5_permit_yes_count')) > 0 ? 'Confirm section 3 permits are issued and signed on' : Number(outcome.eval('take5_readiness_score')) >= 100 ? 'Proceed — maintain controls in place' : 'Review answers with your supervisor'",
26922
+ },
26923
+ {
26924
+ id: AXPDataGenerator.uuid(),
26925
+ name: 'take5_all_checks_pass',
26926
+ title: createMultiLanguageString('All checks pass', 'همهٔ موارد قبول'),
26927
+ description: createMultiLanguageString('True when every line matches the favourable Yes/No pattern.', 'وقتی همهٔ سطرها با الگوی مطلوب بله/خیر هم‌خوان باشد برابر true است.'),
26928
+ resultKind: 'boolean',
26929
+ expression: "Number(outcome.eval('take5_favourable_count')) === 27",
26930
+ },
26931
+ ];
26932
+ //#endregion
26933
+
26040
26934
  //#region ---- Imports ----
26041
26935
  //#endregion
26042
26936
  const q = mockQuestionBankItemByName;
@@ -26055,7 +26949,7 @@ const workplaceSafetyQuestionnaires = [
26055
26949
  post: {
26056
26950
  reviewEnabled: false,
26057
26951
  summaryEnabled: true,
26058
- showCalculationResults: true,
26952
+ showOutcomeResults: true,
26059
26953
  summaryContent: {
26060
26954
  'en-US': '<p><strong>Summary</strong></p>' +
26061
26955
  '<p>Risk points: <strong>{{risk_points}}</strong></p>' +
@@ -26109,6 +27003,7 @@ const workplaceSafetyQuestionnaires = [
26109
27003
  },
26110
27004
  ],
26111
27005
  },
27006
+ outcomes: createQuestionnaireOutcomesSection(WS_HAZARD_OUTCOMES),
26112
27007
  scoringType: 'none',
26113
27008
  timeLimit: 600,
26114
27009
  allowPause: true,
@@ -26128,7 +27023,7 @@ const workplaceSafetyQuestionnaires = [
26128
27023
  post: {
26129
27024
  reviewEnabled: false,
26130
27025
  summaryEnabled: true,
26131
- showCalculationResults: true,
27026
+ showOutcomeResults: true,
26132
27027
  summaryContent: {
26133
27028
  'en-US': '<p><strong>Summary</strong></p>' +
26134
27029
  '<p>PPE compliance score: <strong>{{ppe_compliance_score}}</strong> / 100</p>' +
@@ -26171,6 +27066,7 @@ const workplaceSafetyQuestionnaires = [
26171
27066
  },
26172
27067
  ],
26173
27068
  },
27069
+ outcomes: createQuestionnaireOutcomesSection(WS_PPE_OUTCOMES),
26174
27070
  scoringType: 'none',
26175
27071
  timeLimit: 480,
26176
27072
  allowPause: true,
@@ -26190,7 +27086,7 @@ const workplaceSafetyQuestionnaires = [
26190
27086
  post: {
26191
27087
  reviewEnabled: false,
26192
27088
  summaryEnabled: true,
26193
- showCalculationResults: true,
27089
+ showOutcomeResults: true,
26194
27090
  summaryContent: {
26195
27091
  'en-US': '<p><strong>Take 5 complete</strong></p>' +
26196
27092
  '<p>Answered <strong>{{answeredCount}}</strong> / <strong>{{totalQuestions}}</strong></p>' +
@@ -26274,6 +27170,7 @@ const workplaceSafetyQuestionnaires = [
26274
27170
  },
26275
27171
  ],
26276
27172
  },
27173
+ outcomes: createQuestionnaireOutcomesSection(WS_TAKE5_OUTCOMES),
26277
27174
  scoringType: 'none',
26278
27175
  timeLimit: 900,
26279
27176
  allowPause: true,
@@ -26291,7 +27188,7 @@ const workplaceSafetyQuestionnaires = [
26291
27188
  //#region ---- Mock Data ----
26292
27189
  /**
26293
27190
  * Mock questionnaires by category (General → … → Compliance; team-lead competencies).
26294
- * Outcome rules use stable ids exported from each `questionnaires-*.mock.ts` file — see questionnaire-calculation.mock.ts.
27191
+ * Outcomes are embedded on each questionnaire via `outcomes.sections` in the matching `questionnaires-*.mock.ts` file.
26295
27192
  */
26296
27193
  const questionnaireMock = [
26297
27194
  ...generalQuestionnaires,
@@ -26392,458 +27289,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
26392
27289
  type: Injectable
26393
27290
  }] });
26394
27291
 
26395
- //#region ---- Imports ----
26396
- //#endregion
26397
- //#region ---- Take 5 checklist expressions ----
26398
- const take5S1Keys = Array.from({ length: 9 }, (_, i) => `take5_1_${String(i + 1).padStart(2, '0')}`);
26399
- const take5S2Keys = Array.from({ length: 9 }, (_, i) => `take5_2_${String(i + 1).padStart(2, '0')}`);
26400
- const take5S3Keys = Array.from({ length: 8 }, (_, i) => `take5_3_${String(i + 1).padStart(2, '0')}`);
26401
- /** Section 1: “no” = gap in pre-task readiness. */
26402
- const TAKE5_PREP_GAP_COUNT_EXPR = `fn.SUM(${take5S1Keys.map((k) => `(answer.eval('${k}') === 'no' ? 1 : 0)`).join(', ')})`;
26403
- /** Section 2: “yes” = hazard / exposure flagged. */
26404
- const TAKE5_HAZARD_YES_COUNT_EXPR = `fn.SUM(${take5S2Keys.map((k) => `(answer.eval('${k}') === 'yes' ? 1 : 0)`).join(', ')})`;
26405
- /** Section 3: “yes” = that permit type is required for this job. */
26406
- const TAKE5_PERMIT_YES_COUNT_EXPR = `fn.SUM(${take5S3Keys.map((k) => `(answer.eval('${k}') === 'yes' ? 1 : 0)`).join(', ')})`;
26407
- /** Favourable answers: S1 & S4 yes; S2 & S3 no (matches paper Take 5 polarity). */
26408
- const TAKE5_FAVOURABLE_COUNT_EXPR = `fn.SUM(${[
26409
- ...take5S1Keys.map((k) => `(answer.eval('${k}') === 'yes' ? 1 : 0)`),
26410
- ...take5S2Keys.map((k) => `(answer.eval('${k}') === 'no' ? 1 : 0)`),
26411
- ...take5S3Keys.map((k) => `(answer.eval('${k}') === 'no' ? 1 : 0)`),
26412
- `(answer.eval('take5_4_01') === 'yes' ? 1 : 0)`,
26413
- ].join(', ')})`;
26414
- const questionnaireCalculationMock = [
26415
- // Health — BMI and MDRD eGFR
26416
- {
26417
- id: AXPDataGenerator.uuid(),
26418
- questionnaireId: QUESTIONNAIRE_ID_HEALTH_BMI,
26419
- name: 'bmi',
26420
- title: createMultiLanguageString('BMI', 'شاخص تودهٔ بدنی'),
26421
- description: createMultiLanguageString('Body mass index (kg/m²) from height (cm) and weight (kg)', 'شاخص تودهٔ بدنی (kg/m²) از قد (سانتی‌متر) و وزن (کیلوگرم)'),
26422
- resultKind: 'number',
26423
- expression: "fn.ROUND(Number(answer.eval('weight_kg')) / ((Number(answer.eval('height_cm')) / 100) ** 2), 1)",
26424
- createdAt: new Date('2025-03-01'),
26425
- updatedAt: new Date('2025-03-01'),
26426
- },
26427
- {
26428
- id: AXPDataGenerator.uuid(),
26429
- questionnaireId: QUESTIONNAIRE_ID_HEALTH_BMI,
26430
- name: 'egfr_mdrd',
26431
- title: createMultiLanguageString('eGFR (MDRD)', 'eGFR (MDRD)'),
26432
- description: createMultiLanguageString('MDRD study equation (Scr mg/dL, age years); female multiplier 0.742.', 'معادلهٔ مطالعهٔ MDRD (کراتینین سرم mg/dL، سن به سال); ضریب ۰٫۷۴۲ برای زنان'),
26433
- resultKind: 'number',
26434
- expression: "fn.ROUND(175 * (Number(answer.eval('scr_mg_dl')) ** -1.154) * (Number(answer.eval('age_years')) ** -0.203) * (answer.eval('sex') === 'female' ? 0.742 : 1), 1)",
26435
- createdAt: new Date('2025-03-01'),
26436
- updatedAt: new Date('2025-03-01'),
26437
- },
26438
- {
26439
- id: AXPDataGenerator.uuid(),
26440
- questionnaireId: QUESTIONNAIRE_ID_HEALTH_BMI,
26441
- name: 'bmi_category',
26442
- title: createMultiLanguageString('BMI category', 'دستهٔ BMI'),
26443
- description: createMultiLanguageString('WHO-style categories from computed BMI', 'دسته‌بندی سبک سازمان جهانی بهداشت بر اساس BMI محاسبه‌شده'),
26444
- resultKind: 'string',
26445
- expression: "fn.IF(!Number.isFinite(Number(outcome.eval('bmi'))), '', Number(outcome.eval('bmi')) < 18.5 ? 'Underweight' : Number(outcome.eval('bmi')) < 25 ? 'Normal' : Number(outcome.eval('bmi')) < 30 ? 'Overweight' : 'Obese')",
26446
- createdAt: new Date('2025-03-01'),
26447
- updatedAt: new Date('2025-03-01'),
26448
- },
26449
- // Health — Lifestyle index
26450
- {
26451
- id: AXPDataGenerator.uuid(),
26452
- questionnaireId: QUESTIONNAIRE_ID_HEALTH_WELLBEING,
26453
- name: 'wellness_index',
26454
- title: createMultiLanguageString('Lifestyle index', 'شاخص سبک زندگی'),
26455
- description: createMultiLanguageString('Weighted 0–100 from sleep, inverse stress, exercise, hydration, energy', 'میانگین وزنی ۰–۱۰۰ از خواب، کاهش استرس، ورزش، آبرسانی و انرژی'),
26456
- resultKind: 'number',
26457
- expression: "fn.ROUND((fn.IF(Number(answer.eval('sleep_h')) > 10, 10, Number(answer.eval('sleep_h')))) / 10 * 20 + (6 - Number(answer.eval('stress_lv'))) / 5 * 20 + (fn.IF(Number(answer.eval('exercise_m')) > 300, 300, Number(answer.eval('exercise_m')))) / 300 * 20 + (fn.IF(Number(answer.eval('water_g')) > 12, 12, Number(answer.eval('water_g')))) / 12 * 20 + Number(answer.eval('energy_lv')) / 5 * 20, 0)",
26458
- createdAt: new Date('2025-03-15'),
26459
- updatedAt: new Date('2025-03-15'),
26460
- },
26461
- {
26462
- id: AXPDataGenerator.uuid(),
26463
- questionnaireId: QUESTIONNAIRE_ID_HEALTH_WELLBEING,
26464
- name: 'wellness_band',
26465
- title: createMultiLanguageString('Lifestyle band', 'باند سبک زندگی'),
26466
- description: createMultiLanguageString('Interpretation of composite index', 'تفسیر شاخص ترکیبی'),
26467
- resultKind: 'string',
26468
- expression: "Number(outcome.eval('wellness_index')) >= 75 ? 'Thriving' : Number(outcome.eval('wellness_index')) >= 50 ? 'Balanced' : 'Plan support'",
26469
- createdAt: new Date('2025-03-15'),
26470
- updatedAt: new Date('2025-03-15'),
26471
- },
26472
- // Workplace Safety — Hazard
26473
- {
26474
- id: AXPDataGenerator.uuid(),
26475
- questionnaireId: QUESTIONNAIRE_ID_WS_HAZARD,
26476
- name: 'risk_points',
26477
- title: createMultiLanguageString('Risk points', 'امتیاز ریسک'),
26478
- description: createMultiLanguageString('People × days open × severity (1–5)', 'نفر × روزهای باز × شدت (۱–۵)'),
26479
- resultKind: 'number',
26480
- expression: "fn.ROUND(Number(answer.eval('exp_people')) * Number(answer.eval('exp_days')) * Number(answer.eval('sev')), 0)",
26481
- createdAt: new Date('2025-04-01'),
26482
- updatedAt: new Date('2025-04-01'),
26483
- },
26484
- {
26485
- id: AXPDataGenerator.uuid(),
26486
- questionnaireId: QUESTIONNAIRE_ID_WS_HAZARD,
26487
- name: 'risk_priority',
26488
- title: createMultiLanguageString('Action priority', 'اولویت اقدام'),
26489
- description: createMultiLanguageString('Tiered follow-up from risk points', 'پیگیری چندلایه بر اساس امتیاز ریسک'),
26490
- resultKind: 'string',
26491
- expression: "Number(outcome.eval('risk_points')) > 100 ? 'Escalate immediately' : Number(outcome.eval('risk_points')) > 30 ? 'Schedule control' : 'Monitor'",
26492
- createdAt: new Date('2025-04-01'),
26493
- updatedAt: new Date('2025-04-01'),
26494
- },
26495
- // Workplace Safety — PPE
26496
- {
26497
- id: AXPDataGenerator.uuid(),
26498
- questionnaireId: QUESTIONNAIRE_ID_WS_PPE,
26499
- name: 'ppe_compliance_score',
26500
- title: createMultiLanguageString('PPE compliance score', 'امتیاز رعایت تجهیزات حفاظت فردی'),
26501
- description: createMultiLanguageString('100 when PPE adequate; reduced when not', '۱۰۰ وقتی تجهیزات کافی است؛ در غیر این صورت کاهش می‌یابد'),
26502
- resultKind: 'number',
26503
- expression: "fn.ROUND(answer.eval('whs_ppe_ok') === 'yes' ? 100 : 35, 0)",
26504
- createdAt: new Date('2025-04-08'),
26505
- updatedAt: new Date('2025-04-08'),
26506
- },
26507
- {
26508
- id: AXPDataGenerator.uuid(),
26509
- questionnaireId: QUESTIONNAIRE_ID_WS_PPE,
26510
- name: 'ppe_compliance_band',
26511
- title: createMultiLanguageString('PPE band', 'باند تجهیزات حفاظت فردی'),
26512
- description: createMultiLanguageString('Traffic-light style', 'سبک چراغ راهنمایی (قرمز/زرد/سبز)'),
26513
- resultKind: 'string',
26514
- expression: "Number(outcome.eval('ppe_compliance_score')) >= 80 ? 'Green' : Number(outcome.eval('ppe_compliance_score')) >= 50 ? 'Amber' : 'Red'",
26515
- createdAt: new Date('2025-04-08'),
26516
- updatedAt: new Date('2025-04-08'),
26517
- },
26518
- // Workplace Safety — Take 5 Checklist
26519
- {
26520
- id: AXPDataGenerator.uuid(),
26521
- questionnaireId: QUESTIONNAIRE_ID_WS_TAKE5,
26522
- name: 'take5_prep_gap_count',
26523
- title: createMultiLanguageString('Pre-task gaps (section 1)', 'شکاف‌های پیش از کار (بخش ۱)'),
26524
- description: createMultiLanguageString('Count of section 1 answers that are “No” (readiness gap).', 'تعداد پاسخ‌های «خیر» در بخش ۱ (شکاف آمادگی).'),
26525
- resultKind: 'number',
26526
- expression: TAKE5_PREP_GAP_COUNT_EXPR,
26527
- createdAt: new Date('2026-04-21'),
26528
- updatedAt: new Date('2026-04-21'),
26529
- },
26530
- {
26531
- id: AXPDataGenerator.uuid(),
26532
- questionnaireId: QUESTIONNAIRE_ID_WS_TAKE5,
26533
- name: 'take5_hazard_yes_count',
26534
- title: createMultiLanguageString('Hazards flagged (section 2)', 'خطرهای علامت‌خورده (بخش ۲)'),
26535
- description: createMultiLanguageString('Count of section 2 answers that are “Yes” (hazard or exposure applies).', 'تعداد پاسخ‌های «بله» در بخش ۲ (وجود خطر یا قرارگیری).'),
26536
- resultKind: 'number',
26537
- expression: TAKE5_HAZARD_YES_COUNT_EXPR,
26538
- createdAt: new Date('2026-04-21'),
26539
- updatedAt: new Date('2026-04-21'),
26540
- },
26541
- {
26542
- id: AXPDataGenerator.uuid(),
26543
- questionnaireId: QUESTIONNAIRE_ID_WS_TAKE5,
26544
- name: 'take5_permit_yes_count',
26545
- title: createMultiLanguageString('Permit types required (section 3)', 'انواع مجوز لازم (بخش ۳)'),
26546
- description: createMultiLanguageString('Count of section 3 answers that are “Yes” (that permit pathway applies).', 'تعداد پاسخ‌های «بله» در بخش ۳ (مسیر مجوز مربوطه اعمال می‌شود).'),
26547
- resultKind: 'number',
26548
- expression: TAKE5_PERMIT_YES_COUNT_EXPR,
26549
- createdAt: new Date('2026-04-21'),
26550
- updatedAt: new Date('2026-04-21'),
26551
- },
26552
- {
26553
- id: AXPDataGenerator.uuid(),
26554
- questionnaireId: QUESTIONNAIRE_ID_WS_TAKE5,
26555
- name: 'take5_favourable_count',
26556
- title: createMultiLanguageString('Favourable answers (0–27)', 'پاسخ‌های مطلوب (۰–۲۷)'),
26557
- description: createMultiLanguageString('Answers that match Take 5 “safe” polarity for each section.', 'پاسخ‌هایی که با قطبش «ایمن» فرم Take 5 برای هر بخش هم‌خوان است.'),
26558
- resultKind: 'number',
26559
- expression: TAKE5_FAVOURABLE_COUNT_EXPR,
26560
- createdAt: new Date('2026-04-21'),
26561
- updatedAt: new Date('2026-04-21'),
26562
- },
26563
- {
26564
- id: AXPDataGenerator.uuid(),
26565
- questionnaireId: QUESTIONNAIRE_ID_WS_TAKE5,
26566
- name: 'take5_readiness_score',
26567
- title: createMultiLanguageString('Readiness score', 'امتیاز آمادگی'),
26568
- description: createMultiLanguageString('0–100 from favourable answers (27 questions, equal weight).', '۰–۱۰۰ از پاسخ‌های مطلوب (۲۷ سؤال، وزن یکسان).'),
26569
- resultKind: 'number',
26570
- expression: "fn.ROUND(Number(outcome.eval('take5_favourable_count')) / 27 * 100, 0)",
26571
- createdAt: new Date('2026-04-21'),
26572
- updatedAt: new Date('2026-04-21'),
26573
- },
26574
- {
26575
- id: AXPDataGenerator.uuid(),
26576
- questionnaireId: QUESTIONNAIRE_ID_WS_TAKE5,
26577
- name: 'take5_readiness_band',
26578
- title: createMultiLanguageString('Readiness band', 'باند آمادگی'),
26579
- description: createMultiLanguageString('Traffic-light summary from readiness score.', 'خلاصه چراغ راهنمایی از امتیاز آمادگی.'),
26580
- resultKind: 'string',
26581
- expression: "Number(outcome.eval('take5_readiness_score')) >= 100 ? 'Green — all checks favourable' : Number(outcome.eval('take5_readiness_score')) >= 85 ? 'Amber — review gaps' : 'Red — stop and reassess'",
26582
- createdAt: new Date('2026-04-21'),
26583
- updatedAt: new Date('2026-04-21'),
26584
- },
26585
- {
26586
- id: AXPDataGenerator.uuid(),
26587
- questionnaireId: QUESTIONNAIRE_ID_WS_TAKE5,
26588
- name: 'take5_focus_message',
26589
- title: createMultiLanguageString('Focus message', 'پیام تمرکز'),
26590
- description: createMultiLanguageString('Short guidance: which section to address first.', 'راهنمای کوتاه: کدام بخش را اول رسیدگی کنید.'),
26591
- resultKind: 'string',
26592
- expression: "Number(outcome.eval('take5_prep_gap_count')) > 0 ? 'Address section 1 pre-task gaps before starting' : Number(outcome.eval('take5_hazard_yes_count')) > 0 ? 'Control section 2 hazards before work' : Number(outcome.eval('take5_permit_yes_count')) > 0 ? 'Confirm section 3 permits are issued and signed on' : Number(outcome.eval('take5_readiness_score')) >= 100 ? 'Proceed — maintain controls in place' : 'Review answers with your supervisor'",
26593
- createdAt: new Date('2026-04-21'),
26594
- updatedAt: new Date('2026-04-21'),
26595
- },
26596
- {
26597
- id: AXPDataGenerator.uuid(),
26598
- questionnaireId: QUESTIONNAIRE_ID_WS_TAKE5,
26599
- name: 'take5_all_checks_pass',
26600
- title: createMultiLanguageString('All checks pass', 'همهٔ موارد قبول'),
26601
- description: createMultiLanguageString('True when every line matches the favourable Yes/No pattern.', 'وقتی همهٔ سطرها با الگوی مطلوب بله/خیر هم‌خوان باشد برابر true است.'),
26602
- resultKind: 'boolean',
26603
- expression: "Number(outcome.eval('take5_favourable_count')) === 27",
26604
- createdAt: new Date('2026-04-21'),
26605
- updatedAt: new Date('2026-04-21'),
26606
- },
26607
- // General — Team alignment
26608
- {
26609
- id: AXPDataGenerator.uuid(),
26610
- questionnaireId: QUESTIONNAIRE_ID_GENERAL_TEAM_PULSE,
26611
- name: 'gen_alignment_index',
26612
- title: createMultiLanguageString('Alignment index', 'شاخص هم‌ترازی'),
26613
- description: createMultiLanguageString('0–100 from two 1–5 ratings', '۰–۱۰۰ از دو امتیاز ۱–۵'),
26614
- resultKind: 'number',
26615
- expression: "fn.ROUND(((Number(answer.eval('gen_priority_clarity')) + Number(answer.eval('gen_manager_support'))) / 2 - 1) / 4 * 100, 0)",
26616
- createdAt: new Date('2025-01-20'),
26617
- updatedAt: new Date('2025-01-20'),
26618
- },
26619
- {
26620
- id: AXPDataGenerator.uuid(),
26621
- questionnaireId: QUESTIONNAIRE_ID_GENERAL_TEAM_PULSE,
26622
- name: 'gen_alignment_band',
26623
- title: createMultiLanguageString('Alignment band', 'باند هم‌ترازی'),
26624
- resultKind: 'string',
26625
- expression: "Number(outcome.eval('gen_alignment_index')) >= 70 ? 'Aligned' : Number(outcome.eval('gen_alignment_index')) >= 40 ? 'Mixed' : 'At risk'",
26626
- createdAt: new Date('2025-01-20'),
26627
- updatedAt: new Date('2025-01-20'),
26628
- },
26629
- // General — Office workplace quality
26630
- {
26631
- id: AXPDataGenerator.uuid(),
26632
- questionnaireId: QUESTIONNAIRE_ID_GENERAL_OFFICE_QUALITY,
26633
- name: 'office_quality_index',
26634
- title: createMultiLanguageString('Office quality index', 'شاخص کیفیت محیط اداری'),
26635
- description: createMultiLanguageString('0–100 from seven 1–5 ratings (ergonomics through amenities)', '۰–۱۰۰ از هفت امتیاز ۱–۵ (ارگونومی تا امکانات)'),
26636
- resultKind: 'number',
26637
- expression: "fn.ROUND(((Number(answer.eval('off_ergo')) + Number(answer.eval('off_light')) + Number(answer.eval('off_noise')) + Number(answer.eval('off_climate')) + Number(answer.eval('off_space')) + Number(answer.eval('off_focus')) + Number(answer.eval('off_amenities'))) / 7 - 1) / 4 * 100, 0)",
26638
- createdAt: new Date('2025-02-05'),
26639
- updatedAt: new Date('2025-02-05'),
26640
- },
26641
- {
26642
- id: AXPDataGenerator.uuid(),
26643
- questionnaireId: QUESTIONNAIRE_ID_GENERAL_OFFICE_QUALITY,
26644
- name: 'office_quality_band',
26645
- title: createMultiLanguageString('Office quality band', 'باند کیفیت محیط اداری'),
26646
- resultKind: 'string',
26647
- expression: "Number(outcome.eval('office_quality_index')) >= 75 ? 'Good' : Number(outcome.eval('office_quality_index')) >= 50 ? 'Fair' : 'Poor'",
26648
- createdAt: new Date('2025-02-05'),
26649
- updatedAt: new Date('2025-02-05'),
26650
- },
26651
- // Plant — Work order
26652
- {
26653
- id: AXPDataGenerator.uuid(),
26654
- questionnaireId: QUESTIONNAIRE_ID_PM_WORK_ORDER,
26655
- name: 'maint_backlog_priority',
26656
- title: createMultiLanguageString('Backlog priority score', 'امتیاز اولویت انباشت کار'),
26657
- description: createMultiLanguageString('Downtime × quality gap × LOTO factor', 'زمان توقف × شکاف کیفیت × ضریب LOTO'),
26658
- resultKind: 'number',
26659
- expression: "fn.ROUND(Number(answer.eval('maint_downtime_h')) * (6 - Number(answer.eval('maint_pm_quality'))) * (answer.eval('maint_loto') === 'yes' ? 1 : 1.5), 0)",
26660
- createdAt: new Date('2025-03-10'),
26661
- updatedAt: new Date('2025-03-10'),
26662
- },
26663
- {
26664
- id: AXPDataGenerator.uuid(),
26665
- questionnaireId: QUESTIONNAIRE_ID_PM_WORK_ORDER,
26666
- name: 'maint_backlog_tier',
26667
- title: createMultiLanguageString('Backlog tier', 'سطح انباشت کار'),
26668
- resultKind: 'string',
26669
- expression: "Number(outcome.eval('maint_backlog_priority')) > 80 ? 'Escalate' : Number(outcome.eval('maint_backlog_priority')) > 25 ? 'Plan work' : 'Monitor'",
26670
- createdAt: new Date('2025-03-10'),
26671
- updatedAt: new Date('2025-03-10'),
26672
- },
26673
- // Plant — Spares
26674
- {
26675
- id: AXPDataGenerator.uuid(),
26676
- questionnaireId: QUESTIONNAIRE_ID_PM_SPARES,
26677
- name: 'maint_logistics_risk',
26678
- title: createMultiLanguageString('Logistics risk score', 'امتیاز ریسک تدارکات'),
26679
- description: createMultiLanguageString('MTTR weighted when spares are not assured', 'MTTR وزن‌دار وقتی یدکی تضمین نشده است'),
26680
- resultKind: 'number',
26681
- expression: "fn.ROUND(Number(answer.eval('maint_mttr_h')) * (answer.eval('maint_spare_ok') === 'yes' ? 1 : 2.2), 0)",
26682
- createdAt: new Date('2025-03-18'),
26683
- updatedAt: new Date('2025-03-18'),
26684
- },
26685
- {
26686
- id: AXPDataGenerator.uuid(),
26687
- questionnaireId: QUESTIONNAIRE_ID_PM_SPARES,
26688
- name: 'maint_logistics_followup',
26689
- title: createMultiLanguageString('Logistics follow-up', 'پیگیری تدارکات'),
26690
- resultKind: 'string',
26691
- expression: "Number(outcome.eval('maint_logistics_risk')) > 50 ? 'Source spares or expedite' : 'Monitor'",
26692
- createdAt: new Date('2025-03-18'),
26693
- updatedAt: new Date('2025-03-18'),
26694
- },
26695
- // Compliance — Governance
26696
- {
26697
- id: AXPDataGenerator.uuid(),
26698
- questionnaireId: QUESTIONNAIRE_ID_CP_GOVERNANCE,
26699
- name: 'comp_resilience_index',
26700
- title: createMultiLanguageString('Resilience index', 'شاخص تاب‌آوری'),
26701
- description: createMultiLanguageString('Governance strength minus drill decay', 'قدرت حاکمیتی منهای کهنگی مانور'),
26702
- resultKind: 'number',
26703
- expression: "fn.ROUND(fn.MIN(100, fn.MAX(0, Number(answer.eval('comp_governance')) * 18 - Number(answer.eval('comp_months_drill')) * 3 + 10)), 0)",
26704
- createdAt: new Date('2025-04-02'),
26705
- updatedAt: new Date('2025-04-02'),
26706
- },
26707
- {
26708
- id: AXPDataGenerator.uuid(),
26709
- questionnaireId: QUESTIONNAIRE_ID_CP_GOVERNANCE,
26710
- name: 'comp_resilience_status',
26711
- title: createMultiLanguageString('Resilience status', 'وضعیت تاب‌آوری'),
26712
- resultKind: 'string',
26713
- expression: "Number(outcome.eval('comp_resilience_index')) >= 70 ? 'Strong' : Number(outcome.eval('comp_resilience_index')) >= 45 ? 'Moderate' : 'Improve'",
26714
- createdAt: new Date('2025-04-02'),
26715
- updatedAt: new Date('2025-04-02'),
26716
- },
26717
- // Compliance — Permits
26718
- {
26719
- id: AXPDataGenerator.uuid(),
26720
- questionnaireId: QUESTIONNAIRE_ID_CP_PERMITS,
26721
- name: 'comp_readiness_score',
26722
- title: createMultiLanguageString('Readiness score', 'امتیاز آمادگی'),
26723
- resultKind: 'number',
26724
- expression: "fn.ROUND(fn.MIN(100, (answer.eval('comp_audit_ready') === 'yes' ? 42 : 8) + (answer.eval('comp_permit_valid') === 'yes' ? 42 : 12) + Number(answer.eval('comp_training_current')) * 3.2), 0)",
26725
- createdAt: new Date('2025-04-12'),
26726
- updatedAt: new Date('2025-04-12'),
26727
- },
26728
- {
26729
- id: AXPDataGenerator.uuid(),
26730
- questionnaireId: QUESTIONNAIRE_ID_CP_PERMITS,
26731
- name: 'comp_readiness_next_step',
26732
- title: createMultiLanguageString('Next step', 'گام بعدی'),
26733
- resultKind: 'string',
26734
- expression: "Number(outcome.eval('comp_readiness_score')) >= 75 ? 'Keep cadence' : 'Schedule remediation workshop'",
26735
- createdAt: new Date('2025-04-12'),
26736
- updatedAt: new Date('2025-04-12'),
26737
- },
26738
- // Team lead — competency pillars (1–5 answers → 0–100 index per pillar)
26739
- {
26740
- id: AXPDataGenerator.uuid(),
26741
- questionnaireId: QUESTIONNAIRE_ID_TEAM_LEAD_COMPANY_WIDE,
26742
- name: 'tls_pillar_technical_index',
26743
- title: createMultiLanguageString('Technical pillar index', 'شاخص ستون فنی'),
26744
- description: createMultiLanguageString('0–100 from nine 1–5 ratings (technical & professional)', '۰–۱۰۰ از نه امتیاز ۱–۵ (فنی و حرفه‌ای)'),
26745
- resultKind: 'number',
26746
- expression: "fn.ROUND(((Number(answer.eval('tls_tp_stack_tools')) + Number(answer.eval('tls_tp_code_quality')) + Number(answer.eval('tls_tp_complex_problems')) + Number(answer.eval('tls_tp_architecture_decisions')) + Number(answer.eval('tls_tp_best_practices')) + Number(answer.eval('tls_tp_code_review_feedback')) + Number(answer.eval('tls_tp_debugging')) + Number(answer.eval('tls_tp_knowledge_currency')) + Number(answer.eval('tls_tp_mentoring_transfer'))) / 9 - 1) / 4 * 100, 0)",
26747
- createdAt: new Date('2026-01-15'),
26748
- updatedAt: new Date('2026-01-15'),
26749
- },
26750
- {
26751
- id: AXPDataGenerator.uuid(),
26752
- questionnaireId: QUESTIONNAIRE_ID_TEAM_LEAD_COMPANY_WIDE,
26753
- name: 'tls_pillar_behavioral_index',
26754
- title: createMultiLanguageString('Behavioral pillar index', 'شاخص ستون رفتاری'),
26755
- description: createMultiLanguageString('0–100 from seven 1–5 ratings', '۰–۱۰۰ از هفت امتیاز ۱–۵'),
26756
- resultKind: 'number',
26757
- expression: "fn.ROUND(((Number(answer.eval('tls_bc_team_communication')) + Number(answer.eval('tls_bc_meetings_participation')) + Number(answer.eval('tls_bc_listening_inclusion')) + Number(answer.eval('tls_bc_feedback_tone')) + Number(answer.eval('tls_bc_disagreement_handling')) + Number(answer.eval('tls_bc_pressure_composure')) + Number(answer.eval('tls_bc_trust_collaboration'))) / 7 - 1) / 4 * 100, 0)",
26758
- createdAt: new Date('2026-01-15'),
26759
- updatedAt: new Date('2026-01-15'),
26760
- },
26761
- {
26762
- id: AXPDataGenerator.uuid(),
26763
- questionnaireId: QUESTIONNAIRE_ID_TEAM_LEAD_COMPANY_WIDE,
26764
- name: 'tls_pillar_management_index',
26765
- title: createMultiLanguageString('Management pillar index', 'شاخص ستون مدیریتی'),
26766
- description: createMultiLanguageString('0–100 from ten 1–5 ratings', '۰–۱۰۰ از ده امتیاز ۱–۵'),
26767
- resultKind: 'number',
26768
- expression: "fn.ROUND(((Number(answer.eval('tls_ml_work_distribution')) + Number(answer.eval('tls_ml_backlog_priorities')) + Number(answer.eval('tls_ml_agile_meetings')) + Number(answer.eval('tls_ml_task_breakdown')) + Number(answer.eval('tls_ml_progress_tracking')) + Number(answer.eval('tls_ml_blockers')) + Number(answer.eval('tls_ml_timely_decisions')) + Number(answer.eval('tls_ml_growth_coaching')) + Number(answer.eval('tls_ml_delivery_timing')) + Number(answer.eval('tls_ml_crisis_leadership'))) / 10 - 1) / 4 * 100, 0)",
26769
- createdAt: new Date('2026-01-15'),
26770
- updatedAt: new Date('2026-01-15'),
26771
- },
26772
- {
26773
- id: AXPDataGenerator.uuid(),
26774
- questionnaireId: QUESTIONNAIRE_ID_TEAM_LEAD_COMPANY_WIDE,
26775
- name: 'tls_pillar_business_index',
26776
- title: createMultiLanguageString('Business pillar index', 'شاخص ستون کسب‌وکار'),
26777
- description: createMultiLanguageString('0–100 from eight 1–5 ratings', '۰–۱۰۰ از هشت امتیاز ۱–۵'),
26778
- resultKind: 'number',
26779
- expression: "fn.ROUND(((Number(answer.eval('tls_bo_product_user_understanding')) + Number(answer.eval('tls_bo_business_impact')) + Number(answer.eval('tls_bo_quality_time_cost')) + Number(answer.eval('tls_bo_value_prioritization')) + Number(answer.eval('tls_bo_product_owner_sync')) + Number(answer.eval('tls_bo_requirements_handoff')) + Number(answer.eval('tls_bo_roadmap_awareness')) + Number(answer.eval('tls_bo_customer_value'))) / 8 - 1) / 4 * 100, 0)",
26780
- createdAt: new Date('2026-01-15'),
26781
- updatedAt: new Date('2026-01-15'),
26782
- },
26783
- {
26784
- id: AXPDataGenerator.uuid(),
26785
- questionnaireId: QUESTIONNAIRE_ID_TEAM_LEAD_COMPANY_WIDE,
26786
- name: 'tls_overall_competency_index',
26787
- title: createMultiLanguageString('Overall competency index', 'شاخص شایستگی کلی'),
26788
- description: createMultiLanguageString('0–100 across all 34 items (same weight per question)', '۰–۱۰۰ روی هر ۳۴ سوال (وزن یکسان)'),
26789
- resultKind: 'number',
26790
- expression: "fn.ROUND(((Number(answer.eval('tls_tp_stack_tools')) + Number(answer.eval('tls_tp_code_quality')) + Number(answer.eval('tls_tp_complex_problems')) + Number(answer.eval('tls_tp_architecture_decisions')) + Number(answer.eval('tls_tp_best_practices')) + Number(answer.eval('tls_tp_code_review_feedback')) + Number(answer.eval('tls_tp_debugging')) + Number(answer.eval('tls_tp_knowledge_currency')) + Number(answer.eval('tls_tp_mentoring_transfer')) + Number(answer.eval('tls_bc_team_communication')) + Number(answer.eval('tls_bc_meetings_participation')) + Number(answer.eval('tls_bc_listening_inclusion')) + Number(answer.eval('tls_bc_feedback_tone')) + Number(answer.eval('tls_bc_disagreement_handling')) + Number(answer.eval('tls_bc_pressure_composure')) + Number(answer.eval('tls_bc_trust_collaboration')) + Number(answer.eval('tls_ml_work_distribution')) + Number(answer.eval('tls_ml_backlog_priorities')) + Number(answer.eval('tls_ml_agile_meetings')) + Number(answer.eval('tls_ml_task_breakdown')) + Number(answer.eval('tls_ml_progress_tracking')) + Number(answer.eval('tls_ml_blockers')) + Number(answer.eval('tls_ml_timely_decisions')) + Number(answer.eval('tls_ml_growth_coaching')) + Number(answer.eval('tls_ml_delivery_timing')) + Number(answer.eval('tls_ml_crisis_leadership')) + Number(answer.eval('tls_bo_product_user_understanding')) + Number(answer.eval('tls_bo_business_impact')) + Number(answer.eval('tls_bo_quality_time_cost')) + Number(answer.eval('tls_bo_value_prioritization')) + Number(answer.eval('tls_bo_product_owner_sync')) + Number(answer.eval('tls_bo_requirements_handoff')) + Number(answer.eval('tls_bo_roadmap_awareness')) + Number(answer.eval('tls_bo_customer_value'))) / 34 - 1) / 4 * 100, 0)",
26791
- createdAt: new Date('2026-01-15'),
26792
- updatedAt: new Date('2026-01-15'),
26793
- },
26794
- {
26795
- id: AXPDataGenerator.uuid(),
26796
- questionnaireId: QUESTIONNAIRE_ID_TEAM_LEAD_COMPANY_WIDE,
26797
- name: 'tls_competency_band',
26798
- title: createMultiLanguageString('Overall competency band', 'باند شایستگی کلی'),
26799
- description: createMultiLanguageString('Interpretation of tls_overall_competency_index', 'تفسیر شاخص شایستگی کلی'),
26800
- resultKind: 'string',
26801
- expression: "Number(outcome.eval('tls_overall_competency_index')) >= 80 ? 'Leading' : Number(outcome.eval('tls_overall_competency_index')) >= 65 ? 'Strong' : Number(outcome.eval('tls_overall_competency_index')) >= 50 ? 'Solid' : Number(outcome.eval('tls_overall_competency_index')) >= 35 ? 'Developing' : 'Priority focus'",
26802
- createdAt: new Date('2026-01-15'),
26803
- updatedAt: new Date('2026-01-15'),
26804
- },
26805
- {
26806
- id: AXPDataGenerator.uuid(),
26807
- questionnaireId: QUESTIONNAIRE_ID_TEAM_LEAD_COMPANY_WIDE,
26808
- name: 'tls_pillar_balance_spread',
26809
- title: createMultiLanguageString('Pillar balance spread', 'پراکندگی تعادل ستون‌ها'),
26810
- description: createMultiLanguageString('Difference between strongest and weakest pillar index (0–100)', 'تفاوت بین بالاترین و پایین‌ترین شاخص ستون (۰–۱۰۰)'),
26811
- resultKind: 'number',
26812
- expression: "fn.ROUND(fn.MAX(fn.MAX(Number(outcome.eval('tls_pillar_technical_index')), Number(outcome.eval('tls_pillar_behavioral_index'))), fn.MAX(Number(outcome.eval('tls_pillar_management_index')), Number(outcome.eval('tls_pillar_business_index')))) - fn.MIN(fn.MIN(Number(outcome.eval('tls_pillar_technical_index')), Number(outcome.eval('tls_pillar_behavioral_index'))), fn.MIN(Number(outcome.eval('tls_pillar_management_index')), Number(outcome.eval('tls_pillar_business_index')))), 0)",
26813
- createdAt: new Date('2026-01-15'),
26814
- updatedAt: new Date('2026-01-15'),
26815
- },
26816
- {
26817
- id: AXPDataGenerator.uuid(),
26818
- questionnaireId: QUESTIONNAIRE_ID_TEAM_LEAD_COMPANY_WIDE,
26819
- name: 'tls_priority_focus_pillar',
26820
- title: createMultiLanguageString('Priority focus pillar', 'ستون تمرکز اولویت'),
26821
- description: createMultiLanguageString('Pillar with the lowest index (coaching hint)', 'ستونی با کمترین شاخص (راهنمای کوچینگ)'),
26822
- resultKind: 'string',
26823
- expression: "Number(outcome.eval('tls_pillar_technical_index')) <= Number(outcome.eval('tls_pillar_behavioral_index')) && Number(outcome.eval('tls_pillar_technical_index')) <= Number(outcome.eval('tls_pillar_management_index')) && Number(outcome.eval('tls_pillar_technical_index')) <= Number(outcome.eval('tls_pillar_business_index')) ? 'Technical & professional' : Number(outcome.eval('tls_pillar_behavioral_index')) <= Number(outcome.eval('tls_pillar_technical_index')) && Number(outcome.eval('tls_pillar_behavioral_index')) <= Number(outcome.eval('tls_pillar_management_index')) && Number(outcome.eval('tls_pillar_behavioral_index')) <= Number(outcome.eval('tls_pillar_business_index')) ? 'Behavioral & communication' : Number(outcome.eval('tls_pillar_management_index')) <= Number(outcome.eval('tls_pillar_technical_index')) && Number(outcome.eval('tls_pillar_management_index')) <= Number(outcome.eval('tls_pillar_behavioral_index')) && Number(outcome.eval('tls_pillar_management_index')) <= Number(outcome.eval('tls_pillar_business_index')) ? 'Management & leadership' : 'Business & organizational'",
26824
- createdAt: new Date('2026-01-15'),
26825
- updatedAt: new Date('2026-01-15'),
26826
- },
26827
- ];
26828
- //#endregion
26829
-
26830
- //#region ---- Imports ----
26831
- //#endregion
26832
- //#region ---- Seeder ----
26833
- class AXMQuestionnaireCalculationDataSeeder {
26834
- constructor() {
26835
- this.storage = inject(AXPEntityStorageService);
26836
- }
26837
- async seed() {
26838
- await this.storage.initial(`${RootConfig$3.module.name}.${RootConfig$3.entities.questionnaireCalculation.name}`, questionnaireCalculationMock);
26839
- }
26840
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireCalculationDataSeeder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
26841
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireCalculationDataSeeder }); }
26842
- }
26843
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMQuestionnaireCalculationDataSeeder, decorators: [{
26844
- type: Injectable
26845
- }] });
26846
-
26847
27292
  class AXCAssessmentManagementMockModule {
26848
27293
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCAssessmentManagementMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26849
27294
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXCAssessmentManagementMockModule }); }
@@ -26871,12 +27316,6 @@ class AXCAssessmentManagementMockModule {
26871
27316
  useClass: AXMQuestionnaireDataSeeder,
26872
27317
  multi: true,
26873
27318
  },
26874
- // Then questionnaire calculations (reference questionnaires)
26875
- {
26876
- provide: AXP_DATA_SEEDER_TOKEN,
26877
- useClass: AXMQuestionnaireCalculationDataSeeder,
26878
- multi: true,
26879
- },
26880
27319
  // Then automations (reference questionnaires)
26881
27320
  {
26882
27321
  provide: AXP_DATA_SEEDER_TOKEN,
@@ -26915,12 +27354,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
26915
27354
  useClass: AXMQuestionnaireDataSeeder,
26916
27355
  multi: true,
26917
27356
  },
26918
- // Then questionnaire calculations (reference questionnaires)
26919
- {
26920
- provide: AXP_DATA_SEEDER_TOKEN,
26921
- useClass: AXMQuestionnaireCalculationDataSeeder,
26922
- multi: true,
26923
- },
26924
27357
  // Then automations (reference questionnaires)
26925
27358
  {
26926
27359
  provide: AXP_DATA_SEEDER_TOKEN,
@@ -50766,6 +51199,7 @@ const employeeLifecycleEventFlowWorkflowDefinition = {
50766
51199
  subjectRef: {
50767
51200
  type: 'HumanCapitalManagement.Employee',
50768
51201
  id: '{{ variables.employeeId }}',
51202
+ title: '{{ variables.employeeDisplayName }}',
50769
51203
  },
50770
51204
  statusId: 'active',
50771
51205
  },
@@ -67417,7 +67851,7 @@ class AXCSecurityManagementMockModule {
67417
67851
  provideQuerySetups([
67418
67852
  {
67419
67853
  key: 'SecurityManagement:User:RolesForListColumn',
67420
- loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-CAhDQnWv.mjs').then((m) => m.UserRolesForListColumnQuery),
67854
+ loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-1lSQeAEv.mjs').then((m) => m.UserRolesForListColumnQuery),
67421
67855
  },
67422
67856
  ]),
67423
67857
  ] }); }
@@ -67461,7 +67895,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
67461
67895
  provideQuerySetups([
67462
67896
  {
67463
67897
  key: 'SecurityManagement:User:RolesForListColumn',
67464
- loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-CAhDQnWv.mjs').then((m) => m.UserRolesForListColumnQuery),
67898
+ loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-1lSQeAEv.mjs').then((m) => m.UserRolesForListColumnQuery),
67465
67899
  },
67466
67900
  ]),
67467
67901
  ],
@@ -77791,7 +78225,7 @@ class AXCWorkflowManagementMockModule {
77791
78225
  provideCommandSetups([
77792
78226
  {
77793
78227
  key: 'workflow-activity:assign-to-manager',
77794
- command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-BF9U-Hd6.mjs').then((c) => c.AssignToManagerActivity),
78228
+ command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-BRdgF2Nt.mjs').then((c) => c.AssignToManagerActivity),
77795
78229
  },
77796
78230
  {
77797
78231
  key: 'workflow-activity:get-current-user-manager',
@@ -77902,7 +78336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
77902
78336
  provideCommandSetups([
77903
78337
  {
77904
78338
  key: 'workflow-activity:assign-to-manager',
77905
- command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-BF9U-Hd6.mjs').then((c) => c.AssignToManagerActivity),
78339
+ command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-BRdgF2Nt.mjs').then((c) => c.AssignToManagerActivity),
77906
78340
  },
77907
78341
  {
77908
78342
  key: 'workflow-activity:get-current-user-manager',
@@ -82239,5 +82673,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
82239
82673
  * Generated bundle index. Do not edit.
82240
82674
  */
82241
82675
 
82242
- export { AXCFileStorageServiceFirestore as $, AXCAiChatRouterService as A, AXCAuthMockModule as B, AXCCalendarDataSeeder as C, AXCCalendarEventDataSeeder as D, AXCCalendarManagementMockModule as E, AXCCommandRegistryDataSeeder as F, AXCCommonMockModule as G, AXCContactCoreMockModule as H, AXCContentManagementMockModule as I, AXCConversationDataSeeder as J, AXCConversationMockConversationApi as K, AXCConversationMockMessageApi as L, AXCConversationMockModule as M, AXCConversationMockRealtimeApi as N, AXCConversationMockUserApi as O, AXCCustomerManagementMockModule as P, AXCDashboardManagementMockModule as Q, AXCDataManagementMockModule as R, AXCDexieEntityStorageService as S, AXCDocumentManagementMockModule as T, AXCEditionDataSeeder as U, AXCEntityDefinitionSeederService as V, AXCEntityDefinitionsModule as W, AXCEntityStorageInsertCommand as X, AXCEntityStorageModule as Y, AXCEntityStorageQueryQuery as Z, AXCFileStorageServiceDexie as _, AXMAiModelStableIds as a, AXMCalendarEventTypeSeeder as a$, AXCFinancialCoreMockModule as a0, AXCFirestoreEntityStorageService as a1, AXCFormTemplateManagementMockModule as a2, AXCGoogleStrategyMock as a3, AXCHealthCoreMockModule as a4, AXCHelpDeskMockModule as a5, AXCHumanCapitalManagementMockModule as a6, AXCIdentifierManagementMockModule as a7, AXCImageCaptchaChallengeProviderMock as a8, AXCLearningManagementMockModule as a9, AXCTaskManagementMockModule as aA, AXCTenantManagementMockModule as aB, AXCTenantSeeder as aC, AXCTextTemplateRenderBackend as aD, AXCTokensDataSeeder as aE, AXCUserPassStrategyMock as aF, AXCVersionDB as aG, AXCVersioningService as aH, AXCWidgetCatalogDataSeeder as aI, AXCWorkflowCategorySeeder as aJ, AXCWorkflowDefinitionDataSeeder as aK, AXCWorkflowEngine as aL, AXCWorkflowExecutionDB as aM, AXCWorkflowExecutionStoreDexie as aN, AXCWorkflowExecutionStoreFirestore as aO, AXCWorkflowInstanceCartableDemoSeeder as aP, AXCWorkflowManagementMockModule as aQ, AXC_ENTITY_STORAGE_BACKEND_TYPE as aR, AXC_FIRESTORE_CONFIG as aS, AXC_FIRESTORE_DB as aT, AXC_WORKFLOW_EXECUTION_STORE as aU, AXMAiDemisAssistAgentUuid as aV, AXMAiDemisAssistId as aW, AXMAiDemisGeneralAssistId as aX, AXMAiPlatformAssistantAssistId as aY, AXMAutomationDataSeeder as aZ, AXMBusinessUnitDataSeeder as a_, AXCLocaleManagementMockModule as aa, AXCLocationManagementMockModule as ab, AXCLockService as ac, AXCMeasurementCoreMockModule as ad, AXCMeetingManagementMockModule as ae, AXCMetaDataDefinitionDataSeeder as af, AXCMetadataCategorySeeder as ag, AXCMiddlewaresModule as ah, AXCMockCaptchaChallengeComponent as ai, AXCMockEntityLogListener as aj, AXCMockModule as ak, AXCMockShowMetaDataFormPopupCommand as al, AXCNotificationManagementMockModule as am, AXCOrderManagementMockModule as an, AXCOrganizationManagementMockModule as ao, AXCPersonCoreMockModule as ap, AXCPlatformManagementMockModule as aq, AXCProcurementManagementMockModule as ar, AXCProductCatalogMockModule as as, AXCProjectManagementMockModule as at, AXCQueryRegistryDataSeeder as au, AXCReportManagementMockModule as av, AXCSecurityManagementMockModule as aw, AXCStoredEntityDefinitionLoader as ax, AXCSubscriptionManagementMockModule as ay, AXCSupplierManagementMockModule as az, resolveAssistSpeechModelId as b, FINANCE_ENTERPRISE as b$, AXMDashboardChartDataSourceDefinition as b0, AXMEmployeeDataSeeder as b1, AXMEmploymentTypeDataSeeder as b2, AXMFormDataSourcesProvider as b3, AXMJobDefinitionDataSeeder as b4, AXMJobLevelDataSeeder as b5, AXMLeaveRequestDataSeeder as b6, AXMMeetingDataSeeder as b7, AXMMeetingFilesDataSeeder as b8, AXMMeetingParticipantDataSeeder as b9, AXPMockIdentifierService as bA, AXPMockLookupProvider as bB, AXPMockPolicyProvider as bC, AXPMockSequenceProvider as bD, AXPRoomDataSeeder as bE, AXPSecurityManagementRoleDataSeeder as bF, AXPSecurityManagementUserDataSeeder as bG, AXPTaskBoardPlatformManagementTaskProvider as bH, AXPTaskBoardProjectManagementTaskProvider as bI, AXVChangeType as bJ, BCC as bK, BOC as bL, BUSINESS_UNITS_MOCK as bM, CHAT_LAST_MESSAGE_IDS as bN, COLLABORATION_STANDARD as bO, COSTMANAGER_ENTERPRISE as bP, COSTMANAGER_PROFESSIONAL as bQ, COSTMANAGER_STANDARD as bR, CP as bS, CRM_ENTERPRISE as bT, DASHBOARDS as bU, EDITIONS as bV, EMPLOYEES_MOCK as bW, EMPLOYMENT_TYPES_MOCK as bX, ENTITY_DEFINITION_MAP as bY, ENTITY_REGISTRY as bZ, FINANCE_BASIC as b_, AXMMeetingRoleTypeDataSeeder as ba, AXMMeetingSessionDataSeeder as bb, AXMMeetingTypeDataSeeder as bc, AXMMeetingTypeFileTemplateDataSeeder as bd, AXMPositionAssignmentDataSeeder as be, AXMPositionDataSeeder as bf, AXMQuestionBankItemCategoryDataSeeder as bg, AXMQuestionBankItemDataSeeder as bh, AXMQuestionnaireCalculationDataSeeder as bi, AXMQuestionnaireCategoryDataSeeder as bj, AXMQuestionnaireDataSeeder as bk, AXMResponsibilityDataSeeder as bl, AXMTagDataSeeder as bm, AXMTeamBusinessUnitDataSeeder as bn, AXMTeamDataSeeder as bo, AXMTeamMemberDataSeeder as bp, AXMTeamMemberRoleDataSeeder as bq, AXMWorkflowDashboardChartDataSourceDefinition as br, AXM_AI_REGISTRY_COMMAND_NAME as bs, AXM_AI_REGISTRY_QUERY_NAME as bt, AXM_CORPORATE_BUSINESS_UNIT_ID as bu, AXPDashboardDataSeeder as bv, AXPIdentifierDB as bw, AXPMessageDataSeeder as bx, AXPMockChecksumProvider as by, AXPMockClockProvider as bz, resolveDelegatedAssistOptionString as c, WS as c$, FINANCE_PRO as c0, G as c1, HR_ENTERPRISE as c2, HW as c3, JOB_DEFINITIONS_CATEGORY_MOCK as c4, JOB_DEFINITIONS_MOCK as c5, JOB_DEFINITION_CATEGORY_KEY_TO_ID as c6, JOB_LEVELS_MOCK as c7, LASER_PLUMBING_TENANT_ID as c8, LEAVE_REQUESTS_MOCK as c9, QWS as cA, RESPONSIBILITIES_CATEGORY_MOCK as cB, RESPONSIBILITIES_MOCK as cC, RESPONSIBILITY_CATEGORY_KEY_TO_ID as cD, SAFETYMINDER_BASIC as cE, SAFETYMINDER_ENTERPRISE as cF, SAFETYMINDER_PROFESSIONAL as cG, SHOP_BASIC as cH, SHOP_ENTERPRISE as cI, SHOP_PRO as cJ, TAGS_MOCK as cK, TASKS as cL, TASK_STATUSES as cM, TASK_TEMPLATES as cN, TASK_TYPES as cO, TEAMS_CATEGORY_MOCK as cP, TEAMS_MOCK as cQ, TEAM_BUSINESS_UNITS_MOCK as cR, TEAM_CATEGORY_KEY_TO_ID as cS, TEAM_MEMBERS_MOCK as cT, TEAM_MEMBER_ROLES_MOCK as cU, TIMEPLICITY_TENANT_ID as cV, TLA as cW, TOKENS as cX, TPC as cY, VISIBILITY_FILTER_BYPASS as cZ, WORKFLOW_CATEGORIES as c_, MAGFA_COMMERCE_STANDARD as ca, MAGFA_CONVERSATION_DASHBOARD as cb, MAGFA_TENANT_ID as cc, METADATA_CATEGORY_IDS as cd, METADATA_GENERAL_CATEGORY_REFS as ce, METADATA_SYSTEM_CATEGORY_REFS as cf, MLC as cg, OHR as ch, ORDERING_BASIC as ci, ORDERING_ENTERPRISE as cj, ORDERING_STANDARD as ck, OWNERSHIP_FILTER_BYPASS as cl, PLATFORM_CONSOLE as cm, PLATFORM_TENANT_ID as cn, PM as co, POSITIONS_CATEGORY_MOCK as cp, POSITIONS_MOCK as cq, POSITION_ASSIGNMENTS_MOCK as cr, QCP as cs, QGEN as ct, QHW as cu, QOHR as cv, QPM as cw, QTLE as cx, QUESTIONNAIRE_CATEGORY_MOCK as cy, QUESTION_BANK_ITEM_CATEGORY_MOCK as cz, axcSyncSingleEmployeeDenormalizedOrgFields as d, meetingRoleTypeMock as d$, activityCategoryMocks as d0, activityDefinitionEntityMock as d1, applyEntityDefinitionFirestoreSnapshot as d2, automationCommandMiddleware as d3, automationMock as d4, avatarInterface as d5, awaitConversationMockSharedStorage as d6, axVersionDB as d7, axWorkflowExecutionDB as d8, axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows as d9, createWorkflowDefinitionEntityMock as dA, dateInterface as dB, dateTimeInterface as dC, descriptionInterface as dD, documentFolderSyncMiddleware as dE, emailInterface as dF, entityDefDb as dG, entityValidationMiddleware as dH, fileUploaderInterface as dI, finalizeActivityCategoryItemCounts as dJ, findEmployeeById as dK, folderStorageMiddleware as dL, groupOrderItemCalculatorMiddleware as dM, historyMiddleware as dN, identifierCommitMiddleware as dO, imageInterface as dP, inspectionOkXNaInterface as dQ, loadMockPropertyDefinitions as dR, lockGuardMiddleware as dS, longTextAnswerInterface as dT, lookupInterface as dU, lookupResolverMiddleware as dV, mapInterface as dW, meetingFilesMock as dX, meetingIds as dY, meetingMock as dZ, meetingParticipantMock as d_, axcPatchEmployeeActivePrimaryPositionRefsFromRows as da, axcPatchEmployeeManagerRefsFromRows as db, axcResolveCommandRegistrySeedId as dc, axcResolveQueryRegistrySeedId as dd, axcResolveWidgetCatalogSeedId as de, bankCategory as df, buildEntityStorageQuickSearchFilter as dg, buildWorkflowInstanceCartableDemoRows as dh, bypassAllFilters as di, bypassOwnershipFilter as dj, bypassVisibilityFilter as dk, calendarEventMock as dl, calendarEventTypeMockData as dm, calendarMock as dn, chatMessageMock as dp, chatMock as dq, checkboxInterface as dr, childCountMiddleware as ds, clearEntityDefinitionFirestoreCollections as dt, colorInterface as du, computeDiff as dv, contactInterface as dw, conversationDemoSeedUserIds as dx, createFileCastMiddleware as dy, createWidgetLayoutConfig as dz, ACTIVITY_CATEGORIES as e, meetingSessionMock as e0, meetingTimeSlotMock as e1, meetingTypeFileTemplateMock as e2, meetingTypeMock as e3, mergeDetailRelationMiddleware as e4, mergeQuickSearchIntoRequest as e5, metadataCategoryMocks as e6, mockParticipantIndexForSecurityUserId as e7, mockQuestionBankItemByName as e8, mockRoleDefinitions as e9, selectionListInterface as eA, sexAtBirthInterface as eB, signatureInterface as eC, signatureLoaderMiddleware as eD, statusDefaultMiddleware as eE, tagInterface as eF, tenantMocks as eG, textAreaInterface as eH, textInterface as eI, timeDurationInterface as eJ, titleInterface as eK, toUiRows as eL, toggleInterface as eM, tokenCategoryIds as eN, tokenCategoryMocks as eO, urlInterface as eP, versionInterface as eQ, visibilityFilterMiddleware as eR, workflowDefinitionEntityMock as eS, workflowDefinitionIds as eT, workflowDefinitionMock as eU, yesNoInterface as eV, multipleChoiceInterface as ea, multipleSelectInterface as eb, normalizeAnyFileArrayForView as ec, normalizeSnapshotFileFieldsForView as ed, numberInterface as ee, parseEntityStorageInsertData as ef, parseEntityStorageQueryRequest as eg, participantIds as eh, participantMock as ei, passwordInterface as ej, personIdentifierTypeMock as ek, personIds as el, personLegalIds as em, personMock as en, personNaturalIds as eo, phoneInterface as ep, primaryMiddleware as eq, provideMockPropertySetups as er, qrcodeInterface as es, questionBankItemMock as et, questionnaireCalculationMock as eu, questionnaireMock as ev, ratingInterface as ew, richTextInterface as ex, scaleInterface as ey, selectInterface as ez, ACTIVITY_CATEGORY_ID_BY_KEY as f, ACTIVITY_DEFINITIONS as g, AI_ASSIST_MOCK as h, AI_MODEL_MOCK as i, APPLICATIONS as j, APPLICATION_CATEGORY_IDS as k, APPLICATION_CATEGORY_MOCKS as l, mockUsers as m, AXCActivityCategorySeeder as n, AXCActivityDefinitionSeeder as o, AXCAiAssistSeeder as p, AXCAiManagementMockModule as q, resolveDelegatedAssistOptionModel as r, AXCAiModelSeeder as s, AXCAppTermDataSeeder as t, AXCAppVersionDataSeeder as u, AXCApplicationCategoryDataSeeder as v, AXCApplicationDataSeeder as w, AXCApplicationManagementMockModule as x, AXCAssessmentManagementMockModule as y, AXCAssetManagementMockModule as z };
82243
- //# sourceMappingURL=acorex-connectivity-mock-acorex-connectivity-mock-SjZSega-.mjs.map
82676
+ export { AXCFileStorageServiceFirestore as $, AXCAiChatRouterService as A, AXCAuthMockModule as B, AXCCalendarDataSeeder as C, AXCCalendarEventDataSeeder as D, AXCCalendarManagementMockModule as E, AXCCommandRegistryDataSeeder as F, AXCCommonMockModule as G, AXCContactCoreMockModule as H, AXCContentManagementMockModule as I, AXCConversationDataSeeder as J, AXCConversationMockConversationApi as K, AXCConversationMockMessageApi as L, AXCConversationMockModule as M, AXCConversationMockRealtimeApi as N, AXCConversationMockUserApi as O, AXCCustomerManagementMockModule as P, AXCDashboardManagementMockModule as Q, AXCDataManagementMockModule as R, AXCDexieEntityStorageService as S, AXCDocumentManagementMockModule as T, AXCEditionDataSeeder as U, AXCEntityDefinitionSeederService as V, AXCEntityDefinitionsModule as W, AXCEntityStorageInsertCommand as X, AXCEntityStorageModule as Y, AXCEntityStorageQueryQuery as Z, AXCFileStorageServiceDexie as _, AXMAiModelStableIds as a, AXMCalendarEventTypeSeeder as a$, AXCFinancialCoreMockModule as a0, AXCFirestoreEntityStorageService as a1, AXCFormTemplateManagementMockModule as a2, AXCGoogleStrategyMock as a3, AXCHealthCoreMockModule as a4, AXCHelpDeskMockModule as a5, AXCHumanCapitalManagementMockModule as a6, AXCIdentifierManagementMockModule as a7, AXCImageCaptchaChallengeProviderMock as a8, AXCLearningManagementMockModule as a9, AXCTaskManagementMockModule as aA, AXCTenantManagementMockModule as aB, AXCTenantSeeder as aC, AXCTextTemplateRenderBackend as aD, AXCTokensDataSeeder as aE, AXCUserPassStrategyMock as aF, AXCVersionDB as aG, AXCVersioningService as aH, AXCWidgetCatalogDataSeeder as aI, AXCWorkflowCategorySeeder as aJ, AXCWorkflowDefinitionDataSeeder as aK, AXCWorkflowEngine as aL, AXCWorkflowExecutionDB as aM, AXCWorkflowExecutionStoreDexie as aN, AXCWorkflowExecutionStoreFirestore as aO, AXCWorkflowInstanceCartableDemoSeeder as aP, AXCWorkflowManagementMockModule as aQ, AXC_ENTITY_STORAGE_BACKEND_TYPE as aR, AXC_FIRESTORE_CONFIG as aS, AXC_FIRESTORE_DB as aT, AXC_WORKFLOW_EXECUTION_STORE as aU, AXMAiDemisAssistAgentUuid as aV, AXMAiDemisAssistId as aW, AXMAiDemisGeneralAssistId as aX, AXMAiPlatformAssistantAssistId as aY, AXMAutomationDataSeeder as aZ, AXMBusinessUnitDataSeeder as a_, AXCLocaleManagementMockModule as aa, AXCLocationManagementMockModule as ab, AXCLockService as ac, AXCMeasurementCoreMockModule as ad, AXCMeetingManagementMockModule as ae, AXCMetaDataDefinitionDataSeeder as af, AXCMetadataCategorySeeder as ag, AXCMiddlewaresModule as ah, AXCMockCaptchaChallengeComponent as ai, AXCMockEntityLogListener as aj, AXCMockModule as ak, AXCMockShowMetaDataFormPopupCommand as al, AXCNotificationManagementMockModule as am, AXCOrderManagementMockModule as an, AXCOrganizationManagementMockModule as ao, AXCPersonCoreMockModule as ap, AXCPlatformManagementMockModule as aq, AXCProcurementManagementMockModule as ar, AXCProductCatalogMockModule as as, AXCProjectManagementMockModule as at, AXCQueryRegistryDataSeeder as au, AXCReportManagementMockModule as av, AXCSecurityManagementMockModule as aw, AXCStoredEntityDefinitionLoader as ax, AXCSubscriptionManagementMockModule as ay, AXCSupplierManagementMockModule as az, resolveAssistSpeechModelId as b, FINANCE_PRO as b$, AXMDashboardChartDataSourceDefinition as b0, AXMEmployeeDataSeeder as b1, AXMEmploymentTypeDataSeeder as b2, AXMFormDataSourcesProvider as b3, AXMJobDefinitionDataSeeder as b4, AXMJobLevelDataSeeder as b5, AXMLeaveRequestDataSeeder as b6, AXMMeetingDataSeeder as b7, AXMMeetingFilesDataSeeder as b8, AXMMeetingParticipantDataSeeder as b9, AXPMockLookupProvider as bA, AXPMockPolicyProvider as bB, AXPMockSequenceProvider as bC, AXPRoomDataSeeder as bD, AXPSecurityManagementRoleDataSeeder as bE, AXPSecurityManagementUserDataSeeder as bF, AXPTaskBoardPlatformManagementTaskProvider as bG, AXPTaskBoardProjectManagementTaskProvider as bH, AXVChangeType as bI, BCC as bJ, BOC as bK, BUSINESS_UNITS_MOCK as bL, CHAT_LAST_MESSAGE_IDS as bM, COLLABORATION_STANDARD as bN, COSTMANAGER_ENTERPRISE as bO, COSTMANAGER_PROFESSIONAL as bP, COSTMANAGER_STANDARD as bQ, CP as bR, CRM_ENTERPRISE as bS, DASHBOARDS as bT, EDITIONS as bU, EMPLOYEES_MOCK as bV, EMPLOYMENT_TYPES_MOCK as bW, ENTITY_DEFINITION_MAP as bX, ENTITY_REGISTRY as bY, FINANCE_BASIC as bZ, FINANCE_ENTERPRISE as b_, AXMMeetingRoleTypeDataSeeder as ba, AXMMeetingSessionDataSeeder as bb, AXMMeetingTypeDataSeeder as bc, AXMMeetingTypeFileTemplateDataSeeder as bd, AXMPositionAssignmentDataSeeder as be, AXMPositionDataSeeder as bf, AXMQuestionBankItemCategoryDataSeeder as bg, AXMQuestionBankItemDataSeeder as bh, AXMQuestionnaireCategoryDataSeeder as bi, AXMQuestionnaireDataSeeder as bj, AXMResponsibilityDataSeeder as bk, AXMTagDataSeeder as bl, AXMTeamBusinessUnitDataSeeder as bm, AXMTeamDataSeeder as bn, AXMTeamMemberDataSeeder as bo, AXMTeamMemberRoleDataSeeder as bp, AXMWorkflowDashboardChartDataSourceDefinition as bq, AXM_AI_REGISTRY_COMMAND_NAME as br, AXM_AI_REGISTRY_QUERY_NAME as bs, AXM_CORPORATE_BUSINESS_UNIT_ID as bt, AXPDashboardDataSeeder as bu, AXPIdentifierDB as bv, AXPMessageDataSeeder as bw, AXPMockChecksumProvider as bx, AXPMockClockProvider as by, AXPMockIdentifierService as bz, resolveDelegatedAssistOptionString as c, activityCategoryMocks as c$, G as c0, HR_ENTERPRISE as c1, HW as c2, JOB_DEFINITIONS_CATEGORY_MOCK as c3, JOB_DEFINITIONS_MOCK as c4, JOB_DEFINITION_CATEGORY_KEY_TO_ID as c5, JOB_LEVELS_MOCK as c6, LASER_PLUMBING_TENANT_ID as c7, LEAVE_REQUESTS_MOCK as c8, MAGFA_COMMERCE_STANDARD as c9, RESPONSIBILITIES_CATEGORY_MOCK as cA, RESPONSIBILITIES_MOCK as cB, RESPONSIBILITY_CATEGORY_KEY_TO_ID as cC, SAFETYMINDER_BASIC as cD, SAFETYMINDER_ENTERPRISE as cE, SAFETYMINDER_PROFESSIONAL as cF, SHOP_BASIC as cG, SHOP_ENTERPRISE as cH, SHOP_PRO as cI, TAGS_MOCK as cJ, TASKS as cK, TASK_STATUSES as cL, TASK_TEMPLATES as cM, TASK_TYPES as cN, TEAMS_CATEGORY_MOCK as cO, TEAMS_MOCK as cP, TEAM_BUSINESS_UNITS_MOCK as cQ, TEAM_CATEGORY_KEY_TO_ID as cR, TEAM_MEMBERS_MOCK as cS, TEAM_MEMBER_ROLES_MOCK as cT, TIMEPLICITY_TENANT_ID as cU, TLA as cV, TOKENS as cW, TPC as cX, VISIBILITY_FILTER_BYPASS as cY, WORKFLOW_CATEGORIES as cZ, WS as c_, MAGFA_CONVERSATION_DASHBOARD as ca, MAGFA_TENANT_ID as cb, METADATA_CATEGORY_IDS as cc, METADATA_GENERAL_CATEGORY_REFS as cd, METADATA_SYSTEM_CATEGORY_REFS as ce, MLC as cf, OHR as cg, ORDERING_BASIC as ch, ORDERING_ENTERPRISE as ci, ORDERING_STANDARD as cj, OWNERSHIP_FILTER_BYPASS as ck, PLATFORM_CONSOLE as cl, PLATFORM_TENANT_ID as cm, PM as cn, POSITIONS_CATEGORY_MOCK as co, POSITIONS_MOCK as cp, POSITION_ASSIGNMENTS_MOCK as cq, QCP as cr, QGEN as cs, QHW as ct, QOHR as cu, QPM as cv, QTLE as cw, QUESTIONNAIRE_CATEGORY_MOCK as cx, QUESTION_BANK_ITEM_CATEGORY_MOCK as cy, QWS as cz, axcSyncSingleEmployeeDenormalizedOrgFields as d, meetingSessionMock as d$, activityDefinitionEntityMock as d0, applyEntityDefinitionFirestoreSnapshot as d1, automationCommandMiddleware as d2, automationMock as d3, avatarInterface as d4, awaitConversationMockSharedStorage as d5, axVersionDB as d6, axWorkflowExecutionDB as d7, axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows as d8, axcPatchEmployeeActivePrimaryPositionRefsFromRows as d9, dateInterface as dA, dateTimeInterface as dB, descriptionInterface as dC, documentFolderSyncMiddleware as dD, emailInterface as dE, entityDefDb as dF, entityValidationMiddleware as dG, fileUploaderInterface as dH, finalizeActivityCategoryItemCounts as dI, findEmployeeById as dJ, folderStorageMiddleware as dK, groupOrderItemCalculatorMiddleware as dL, historyMiddleware as dM, identifierCommitMiddleware as dN, imageInterface as dO, inspectionOkXNaInterface as dP, loadMockPropertyDefinitions as dQ, lockGuardMiddleware as dR, longTextAnswerInterface as dS, lookupInterface as dT, lookupResolverMiddleware as dU, mapInterface as dV, meetingFilesMock as dW, meetingIds as dX, meetingMock as dY, meetingParticipantMock as dZ, meetingRoleTypeMock as d_, axcPatchEmployeeManagerRefsFromRows as da, axcResolveCommandRegistrySeedId as db, axcResolveQueryRegistrySeedId as dc, axcResolveWidgetCatalogSeedId as dd, bankCategory as de, buildEntityStorageQuickSearchFilter as df, buildWorkflowInstanceCartableDemoRows as dg, bypassAllFilters as dh, bypassOwnershipFilter as di, bypassVisibilityFilter as dj, calendarEventMock as dk, calendarEventTypeMockData as dl, calendarMock as dm, chatMessageMock as dn, chatMock as dp, checkboxInterface as dq, childCountMiddleware as dr, clearEntityDefinitionFirestoreCollections as ds, colorInterface as dt, computeDiff as du, contactInterface as dv, conversationDemoSeedUserIds as dw, createFileCastMiddleware as dx, createWidgetLayoutConfig as dy, createWorkflowDefinitionEntityMock as dz, ACTIVITY_CATEGORIES as e, meetingTimeSlotMock as e0, meetingTypeFileTemplateMock as e1, meetingTypeMock as e2, mergeDetailRelationMiddleware as e3, mergeQuickSearchIntoRequest as e4, metadataCategoryMocks as e5, mockParticipantIndexForSecurityUserId as e6, mockQuestionBankItemByName as e7, mockRoleDefinitions as e8, multipleChoiceInterface as e9, signatureInterface as eA, signatureLoaderMiddleware as eB, statusDefaultMiddleware as eC, tagInterface as eD, tenantMocks as eE, textAreaInterface as eF, textInterface as eG, timeDurationInterface as eH, titleInterface as eI, toUiRows as eJ, toggleInterface as eK, tokenCategoryIds as eL, tokenCategoryMocks as eM, urlInterface as eN, versionInterface as eO, visibilityFilterMiddleware as eP, workflowDefinitionEntityMock as eQ, workflowDefinitionIds as eR, workflowDefinitionMock as eS, yesNoInterface as eT, multipleSelectInterface as ea, normalizeAnyFileArrayForView as eb, normalizeSnapshotFileFieldsForView as ec, numberInterface as ed, parseEntityStorageInsertData as ee, parseEntityStorageQueryRequest as ef, participantIds as eg, participantMock as eh, passwordInterface as ei, personIdentifierTypeMock as ej, personIds as ek, personLegalIds as el, personMock as em, personNaturalIds as en, phoneInterface as eo, primaryMiddleware as ep, provideMockPropertySetups as eq, qrcodeInterface as er, questionBankItemMock as es, questionnaireMock as et, ratingInterface as eu, richTextInterface as ev, scaleInterface as ew, selectInterface as ex, selectionListInterface as ey, sexAtBirthInterface as ez, ACTIVITY_CATEGORY_ID_BY_KEY as f, ACTIVITY_DEFINITIONS as g, AI_ASSIST_MOCK as h, AI_MODEL_MOCK as i, APPLICATIONS as j, APPLICATION_CATEGORY_IDS as k, APPLICATION_CATEGORY_MOCKS as l, mockUsers as m, AXCActivityCategorySeeder as n, AXCActivityDefinitionSeeder as o, AXCAiAssistSeeder as p, AXCAiManagementMockModule as q, resolveDelegatedAssistOptionModel as r, AXCAiModelSeeder as s, AXCAppTermDataSeeder as t, AXCAppVersionDataSeeder as u, AXCApplicationCategoryDataSeeder as v, AXCApplicationDataSeeder as w, AXCApplicationManagementMockModule as x, AXCAssessmentManagementMockModule as y, AXCAssetManagementMockModule as z };
82677
+ //# sourceMappingURL=acorex-connectivity-mock-acorex-connectivity-mock-U3_OWcLL.mjs.map